2016-10-14 6 views
0

以下、私は3つの動物園を挙げました。私は "dog"以外のtypeの動物を持つ動物園を私に与えるmongoDBクエリを探しています。以下の文書では、animalの配列にtypeと等しくない動物があり、dogに等しくないので、1番と3番の動物園を返すべきです。キーワードを除くMongoDbネスト配列クエリ

{ 
    "name": "Best zoo ever", 
    number: 1, 
    "animals": [ 
    { 
     "type": "cat", 
     "name": "sylvester" 
    }, 
    { 
     "type": "dog", 
     "name": "scooby" 
    } 
    ] 
} 

{ 
    "name": "nyc zoo", 
    number: 2, 
    "animals": [ 
    { 
     "type": "dog", 
     "name": "scooby" 
    } 
    ] 
} 

{ 
    "name": "brooklyn zoo", 
    number: 3, 
    "animals": [ 
    { 
     "type": "fish", 
     "name": "dori" 
    } 
    ] 
} 

答えて

1

あなたは$ elemMatchと$ NEで問い合わせることができます:

db.zoos.find({ "animals": { $elemMatch: { type: { $ne: "dog" }} }}) 

$elemMatch docs

$ne docs

+0

おかげ@Joeが、しかし、私は流星を使用していますし、彼らは$をサポートしていません。フロントエンドクエリのelemMatch。 – user3795202

+0

あなたは同じクエリを達成する他の方法を知っていますか? – user3795202

関連する問題