我正在努力使用 mongoimport 从 CSV 文件中导入 Mongodb 的 ObjectId:
我尝试了所有我能想到的组合和转义方法,但无法从 CSV 正确导入 ObjectId。
首先,我尝试将我从 MongoDB 导出的内容准确导入 CSV。我正在使用 MongoDB 2.2.1。
我刚刚创建了两个集合并在另一个文档中引用了一个文档的 _id:
use yourdb
db.createCollection("student")
db.createCollection("class")
db.student.insert({"name":"Peter"})
db.student.find() returns { "_id" : ObjectId("5143af326d44e1ceb372121d"), "name" : "Peter" }
db.class.insert({"student_id": ObjectId("5143af326d44e1ceb372121d"),"name":"II-4"})
然后我在 shell 中使用了 mongoexport 命令:
mongoexport -h localhost:3002 -d yourdb -c classes --csv -f student_id,name > export.txt
生成的 CSV 如下所示:
student_id,name
ObjectID(5143af326d44e1ceb372121d),"II-4"
然后我使用以下方法导入了生成的 CSV:
mongoimport -h localhost:3002 -d yourdb -c class --type csv --file export.txt --headerline
查询类集合现在返回:
db.class.find()
{ "_id" : ObjectId("5143afc66d44e1ceb372121e"), "student_id" : ObjectId("5143af326d44e1ceb372121d"), "name" : "II-4" }
{ "_id" : ObjectId("5143b44788df173ba096550e"), "student_id" : "ObjectID(5143af326d44e1ceb372121d)", "name" : "II-4" }
如您所见,第二个文档中的 student_id 字段实际上是一个字符串,而不是 MongoDB ObjectId。
我错了,或者 Mongo 无法导入它自己导出的 CSV?