如何在数组中找到包含和ObjectID的文档

时间:2014-04-29 13:01:28

标签: mongodb

我有一个mongoDB数据库,带有一个包含此文档的客户端集合:

{
    "_id" : ObjectId("535a3bc1deaf501ff87d188f"),
    "address" : "ghjk",
    "name" : "ghjk",
    "ni" : "12345678m",
    "orders" : [ 
        "534e53012817e40b1995d0d8"
    ],
    "phone" : "655333004",
    "surname" : "ghjk"
}

现在,我需要在我的集合中找到包含订单数组中的id 534e53012817e40b1995d0d8的文档..

db.clients.findOne({"534e53012817e40b1995d0d8":{$in:"orders"}});

这给我一个错误:

  

未捕获的异常:错误:{“$ err”:“无效查询”,“代码”:12580}

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

提供价值的订单的简单查找将完成这项工作:

db.clients.find({"orders":"534e53012817e40b1995d0d8"})

如果你想使用"$in"运算符,你必须使用这个表达式(首先是标记的搜索位置,而不是列为数组的匹配值列表),请参阅doc of $in

db.clients.find({"orders":{"$in":["534e53012817e40b1995d0d8"]}})