5a68fdc3615eda645bc6bdec

5a68fdc3615eda645bc6bdec

我在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"}

}

09-11 00:27