微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 mongoimport 时,你能指定 _id 应该是 UUID 吗?

如何解决使用 mongoimport 时,你能指定 _id 应该是 UUID 吗?

我正在使用 mongoimport 将大量 CSV 记录导入到 MongoDb。目前,认情况下,_id 字段被设置为 ObjectId,如下所示:

"_id" : ObjectId("5fea8abcda05f098a1ac9857") 

是否有一个参数可以传递给 mongoimport 命令,它会导致 MongoDb 在导入时为每个文档生成一个新的 UUID,例如:

"_id" : UUID("0ef6bc1d-017d-4c85-9393-2d7832598d03")

否则,如果无法在导入时为 _id 字段分配 UUID,是否可以编写另一个查询来对导入的集合执行此更新?

解决方法

这似乎无法在导入时切换到 uuid,但您可以这样做:

mongoimport --db <your_db> --collection tmpCol --drop --type csv --file data.csv --headerline

然后:

db.tmpCol.find().forEach(function (document) {
  document._id = UUID()
  db.desiredCollection.insert(document)
})

可能相关:https://forums.meteor.com/t/how-to-mongoimport-and-not-use-objectid-in-the--id-fields/23963/2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。