我在mongo集合中有一些这样的数据结构:
{ "list" : [ { "update_time" : NumberLong(1426690563), "provider" : NumberLong(4) } ] }
我想要查询list
包含provider
值为4的所有条目。
如果有帮助,所有list
数组只包含一个元素。
我现在正在尝试的是:
db.collection.find(
{
list: {
provider: 4
}
}
)
虽然这不起作用,但总是返回一个空集
答案 0 :(得分:1)
使用 dot notation ,即连接包含数组的字段的名称,带点(。)和嵌入文档中字段的名称,并将其用作您的查询:
db.collection.find({"list.provider": 4})
您还可以使用 $elemMatch 运算符在嵌入文档数组中指定多个条件,以便至少一个嵌入文档满足所有指定条件:
db.collection.find({
list: {
$elemMatch: {
provider: 4
}
}
})