{
"_id" : ...,
"name" : "sport",
}
{
"_id" : ...,
"name" : "art",
}
{
"_id" : ...,
"name" : "cars",
}
这是我有["cars","sport"]
我只是想确保我有我的收藏cars
和sport
,如果不是(数组或只是一个不存在)我想收到没有什么。 我正在寻找一个像$在,但和模式的阵列友好的查询模式。
{
"_id" : ...,
"name" : "sport",
}
{
"_id" : ...,
"name" : "art",
}
{
"_id" : ...,
"name" : "cars",
}
这是我有["cars","sport"]
我只是想确保我有我的收藏cars
和sport
,如果不是(数组或只是一个不存在)我想收到没有什么。 我正在寻找一个像$在,但和模式的阵列友好的查询模式。
这是你在找什么.. ??
db.colllection.find({$and: [ {"name": {$in: ["cars"]}}, {"name": {$in: ["sports"]}} ] })
以下查询应该可以帮助您实现这个
//change test with your collection name
db.getCollection('test').aggregate(
{
$group: {
_id: "collectionOfNames",
"names": {$addToSet: "$name"}
}
},
{
$match: {"names": {$all: ["cars", "sport"]}}
}
)
我们使用$组所有文档创建属性名的数组“名字”。 然后使用$ match和$all我们检查以确保数组“names”包含查询数组中的所有元素。
这是你在找什么?
不,这是答案,谢谢。这只是如果它找到任何,或两者兼而有之。 –