如何查询不是ObjectId类型的_id

时间:2019-01-25 20:36:14

标签: mongodb mongoose mongodb-query

(我是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") }

1 个答案:

答案 0 :(得分:3)

在您的模型中,您说您拥有对象ID作为ID的数据类型,对吗?因此,在使用此

时,通常会抛出转换错误
  

7409a2ab-322e-40f3-b991-c3ebeda78f61

作为_id。。因此,您需要以某种方式更改模型(实际上是架构),以使您的类型(如果id是字符串而不是对象id)

{
_id : String,
blah,
blah,
blah,
}