使用mongoimport时,你能指定_id应该是一个UUID吗?
When using mongoimport, can you specify that the _id should be a UUID?
我正在使用 mongoimport 将大量 CSV 记录导入到 MongoDb。目前,默认情况下,_id 字段被设置为 ObjectId,如图所示:
"_id" : ObjectId("5fea8abcda05f098a1ac9857")
是否有一个我可以传递给 mongoimport 命令的参数,它会导致 MongoDb 为导入的每个文档生成一个新的 UUID,例如:
"_id" : UUID("0ef6bc1d-017d-4c85-9393-2d7832598d03")
否则,如果无法在导入时将 UUID 分配给 _id 字段,是否可以编写另一个查询来对导入的集合执行此更新?
这似乎无法在导入时切换到 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
我正在使用 mongoimport 将大量 CSV 记录导入到 MongoDb。目前,默认情况下,_id 字段被设置为 ObjectId,如图所示:
"_id" : ObjectId("5fea8abcda05f098a1ac9857")
是否有一个我可以传递给 mongoimport 命令的参数,它会导致 MongoDb 为导入的每个文档生成一个新的 UUID,例如:
"_id" : UUID("0ef6bc1d-017d-4c85-9393-2d7832598d03")
否则,如果无法在导入时将 UUID 分配给 _id 字段,是否可以编写另一个查询来对导入的集合执行此更新?
这似乎无法在导入时切换到 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