我正在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'})
该如何解决此问题?
预先感谢
答案 0 :(得分:1)
在导入第二个集合时尝试使用它,然后两个集合都将具有对象ID而不是_id
{
"_id" : {"$oid":"5a68fdc3615eda645bc6bdec"}
}