2017-06-05 10 views
1

これは、これは私が、私はちょうど私が私のコレクションでcarssportを持っていることを確認するには、そうでない場合(またはちょうど1にはない["cars","sport"] を持っている配列である私のコレクションmongoDBで指定されたすべての配列値を持つすべてのドキュメントを検索するにはどうすればよいですか?

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

です存在する)私はを受け取りたいと思います。 私は$、のような配列に優しいクエリを探していますが、モードです。

答えて

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"にクエリ配列のすべての要素が含まれていることを確認します。

これはあなたが探しているものですか?

関連する問題