【发布时间】:2018-12-28 14:42:58
【问题描述】:
我在 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'})
如何解决这个问题?
提前致谢
【问题讨论】: