mongoimport _id不是一个ObjectId

时间:2018-07-20 09:56:36

标签: json database mongodb

我正在Windows 10上使用MongoDB v3.6.4

我有一个类似JSON的

[ {"_id": "5a68fdc3615eda645bc6bdec", "name": "Alfio"}, ... ]

我通过以下方式导入它:

mongoimport --db <mydb> --collection <mycollection> --file <myfile> --jsonArray

我在数据库中的正确位置获取了文档。但是_id是纯字符串。

我可以进行所有类型的查询,除了那些包含 _id 作为搜索参数的查询,而且 Model.findById()不起作用(它不接受)一个字符串,甚至没有一个ObjectId。)

id看起来像纯字符串( _id:“ 5a68fdc3615eda645bc6bdec” ),而在我的其他集合中,id看起来像对象(_id: ObjectId(“ 5a68fdc3615eda645bc6bdec”))。

为什么import语句在未分配ObjectId而不是纯字符串的情况下导入了所有内容?

为什么我什至无法查询以下内容?

Model.findOne({ _id: '5a68fdc3615eda645bc6bdec'})

该如何解决此问题?

预先感谢

1 个答案:

答案 0 :(得分:1)

在导入第二个集合时尝试使用它,然后两个集合都将具有对象ID而不是_id

{ 
 "_id" : {"$oid":"5a68fdc3615eda645bc6bdec"}

}