我在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(s)而不是纯字符串?
为什么我甚至不能用下面这样的东西来查询?
Model.findOne({ _id: '5a68fdc3615eda645bc6bdec'})
如何解决这个问题?
提前谢谢
最佳答案
在第二个集合上导入时尝试使用此选项,则两个集合都将具有对象ID而不是ID
{
"_id" : {"$oid":"5a68fdc3615eda645bc6bdec"}
}