(我是mongo的新手)
如何查询不是ObjectId类型的_id?
我mongorestore了一个mongodump,并且无法基于id字段获得任何结果。一段时间后,我注意到集合中的记录未遵循ObjectID类型。
"_id": "7409a2ab-322e-40f3-b991-c3ebeda78f61",
如果我将ID更改为id:"5c47422231caf0939f3d7cc7"
,则我的查询将正常运行,因为它与ObjectID类型匹配。
我只是不断得到CastError: Cast to ObjectId failed for value "f7757753-c450-42f9-b0f9-9a617628fcfa" at path "_id" for model "mydb"
我尝试查询mydb.findById({ _id: 'f7757753-c450-42f9-b0f9-9a617628fcfa' })
和mydb.findOne({ _id: 'f7757753-c450-42f9-b0f9-9a617628fcfa' }
和mydb.findOne({ _id: 'f7757753-c450-42f9-b0f9-9a617628fcfa' }
还尝试将ObjectId强制合并到我的查询中,例如:{ _id: ObjectId("f7757753-c450-42f9-b0f9-9a617628fcfa") }
答案 0 :(得分:3)
在您的模型中,您说您拥有对象ID作为ID的数据类型,对吗?因此,在使用此
时,通常会抛出转换错误7409a2ab-322e-40f3-b991-c3ebeda78f61
作为_id。。因此,您需要以某种方式更改模型(实际上是架构),以使您的类型(如果id是字符串而不是对象id)
{
_id : String,
blah,
blah,
blah,
}