这是我的收藏品
{
"_id" : ...,
"name" : "sport",
}
{
"_id" : ...,
"name" : "art",
}
{
"_id" : ...,
"name" : "cars",
}
这是我得到的数组["cars","sport"]
我只是想确保我的收藏中有cars
和 sport
,如果没有(或者只有一个不存在)我想收到没有即可。
我正在寻找类似于数组的查询,例如 $ in ,但和模式。
答案 0 :(得分:0)
这就是你在寻找...... ??
db.colllection.find( {$and: [ {"name": {$in: ["cars"]}},
{"name": {$in: ["sports"]}}
]
})
答案 1 :(得分:0)
以下查询应该可以帮助您实现此目标
//change test with your collection name
db.getCollection('test').aggregate(
{
$group: {
_id: "collectionOfNames",
"names": {$addToSet: "$name"}
}
},
{
$match: {"names": {$all: ["cars", "sport"]}}
}
)
我们使用$ group在所有文档中创建属性 name 的数组“名称”。 然后使用$ match和$all检查以确保数组“names”包含查询数组中的所有元素。
这是你在找什么?