2017-06-05 49 views
1

这是我收集如何在mongoDB中查找所有指定数组值的文档?

{ 
    "_id" : ..., 
    "name" : "sport", 
} 
{ 
    "_id" : ..., 
    "name" : "art", 
} 
{ 
    "_id" : ..., 
    "name" : "cars", 
} 

这是我有["cars","sport"] 我只是想确保我有我的收藏carssport,如果不是(数组或只是一个不存在)我想收到没有什么。 我正在寻找一个像$在,但模式的阵列友好的查询模式。

回答

0

这是你在找什么.. ??

db.colllection.find({$and: [ {"name": {$in: ["cars"]}}, {"name": {$in: ["sports"]}} ] })

+0

不,这是答案,谢谢。这只是如果它找到任何,或两者兼而有之。 –

0

以下查询应该可以帮助您实现这个

//change test with your collection name 
db.getCollection('test').aggregate(
    { 
     $group: { 
      _id: "collectionOfNames", 
      "names": {$addToSet: "$name"} 
     } 
    }, 
    { 
     $match: {"names": {$all: ["cars", "sport"]}} 

    } 
) 

我们使用$组所有文档创建属性的数组“名字”。 然后使用$ match和$all我们检查以确保数组“names”包含查询数组中的所有元素。

这是你在找什么?

相关问题