mongo shell collection.find by _id不起作用



我一直在尝试使用 _id 获取文档,但它在 mongo shell 中没有返回任何内容。当我检查收集时,它具有该_id。

> db.Client.find({_id:"5b76f488fb83e109b3a399d9"})
> db.Client.find().pretty()
{
"_id" : ObjectId("5b76f488fb83e109b3a399d9"),
"emailHost" : "Gmail",
"name" : "ABC DEF",
"updatedAt" : ISODate("2018-08-17T16:15:04.907Z"),
"createdAt" : ISODate("2018-08-17T16:15:04.907Z"),
"__v" : 0
}
{
"_id" : ObjectId("5b76f48efb83e109b3a399db"),
"emailHost" : "Gmail",
"name" : "ABC DEF",
"updatedAt" : ISODate("2018-08-17T16:15:10.635Z"),
"createdAt" : ISODate("2018-08-17T16:15:10.635Z"),
"__v" : 0
}

我不理解这种行为。

尝试在 ObjectId(( 中包装_id

> db.test.find({"_id" : ObjectId("4ecc05e55dd98a436ddcc47c")})
> db.test.find(ObjectId("4ecc05e55dd98a436ddcc47c"))

查询不起作用的原因是_id不是字符串。它是类型ObjectId的对象。您可以通过调用ObjectId("4ecc05e55dd98a436ddcc47c")来创建一个。

这将导致以下查询:

db.Client.find({_id: ObjectId("5b76f488fb83e109b3a399d9")})

最新更新