(我是 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") }
最佳答案
在您的模型中,您说您将对象 ID 作为 ID 的数据类型,对吗?所以用这个的时候尖叫cast error是正常的
7409a2ab-322e-40f3-b991-c3ebeda78f61
作为_id ..所以你需要改变你的模型(实际上是模式),如果id是一个字符串而不是一个对象id,你的类型
{
_id : String,
blah,
blah,
blah,
}
关于mongodb - 如何查询不是 ObjectId 类型的 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54372416/