Mongodb mongo shell collection.find by\u id不起作用

Mongodb mongo shell collection.find by\u id不起作用,mongodb,Mongodb,我一直在尝试使用_id获取文档,但它在mongo shell中没有返回任何内容。当我检查集合时,它具有该_id > db.Client.find({_id:"5b76f488fb83e109b3a399d9"}) > db.Client.find().pretty() { "_id" : ObjectId("5b76f488fb83e109b3a399d9"), "emailHost" : "Gmail", "name" : "ABC DEF", "u

我一直在尝试使用_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)


查询不起作用的原因是
\u id
不是字符串。它是类型为
ObjectId
的对象。您可以通过调用
ObjectId(“4ecc05e55dd98a436ddcc47c”)
创建一个

这将导致以下查询:

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