2017-01-13 10 views
1

に私はこのような文書があります:valueプロパティに$ elemMatchを使用する方法

{ 
    "values": 
    [ 
     ["a","231"], 
     ["b","232"], 
     ["c","233"], 
     ["a","235"] 
    ] 
} 

を。

db.test.find({ '値: は、彼らの最初の要素は、あなたがこのようなものを使用することができ、この

db.test.find({"values" : {$elemMatch: { "matchedElemet"[0]: "a"}}},{"values.$":1}) 
+0

あなたはこれまで何をしていますか? –

答えて

1

のような「」

何かである値の要素を投影します':{$ elemMatch:{$ elemMatch:で{$:[' A ']}}}}、{ "値$。":1})

又は

db.test.find({ }、{'値':{$ elemMatch:{$ elemMatch:{$ in:['a']}}}})

私はあなたの要求を正しく得て、これが助けてくれることを願っています。

+0

は配列の最初の要素である が配列の2番目の場所にある場合は一致しません – SajjadRahnama

+0

@SajjadRahnamaアプリケーション層で1つのことを実行できますか?最初にスプライスを使用して最初の値をフィルタリングします。db.test.find({}、{'values':{$ slice:1}});上記のクエリを使用します。それはあなたが単一のクエリを見つけるまであなたの問題を解決するはずです –

+0

はいアプリケーション層でこれを行うための良いソリューション – SajjadRahnama