2016-06-15 5 views
1

指定されたJSONオブジェクトを含むドキュメントを検索するにはどうすればよいですか?MongoDBのドキュメントをオブジェクトマッチングで照会

例:

{ 
    "componentType": "PivotTable", 
    "properties": { 
     "tags": ["tag1"] 
    } 
} 
:今すぐ値が設定され、部分キーを持つ文書の唯一 identification一部与え

{ 
    "identification": { 
    "componentId": "3a4f6199-6141-4179-ac5f-f1bbcf627bb2", 
    "componentType": "PivotTable", 
    "dataDate": "2016-06-15T15:29:51.139+0200", 
    "dataType": "PTF", 
    "properties": { 
     "contextId": "0329fe70-92f0-4b60-b3c2-79377adb8f95", 
     "tags": ["tag1", "tag2"] 
    } 
    }, 
    "viewData": { 
    "lineGroups": [] 
    } 
} 

がデータベースtestに、このような文書があることを想定

上記の文書の識別部分が特定の識別情報と一致しているため、その文書を返す必要があります。

私がdb.test.find({identification: {/*the given identification segment*/}})を実行した場合、mongodbはドキュメント内のすべてのエントリを正確にチェックすることで識別部分を直接比較します。この場合、その文書は返されません。

mongodbクエリ言語では、これを比較的単純で簡単なやり方で行うことができますか?または、クエリを構築するためにIdentificationオブジェクトのエントリを再帰的に解析する必要がありますか?

答えて

0

MongoはWHOLEプロパティのサブ文書 と一致するようにします。この場合、1:1の文書を提供する必要があります。

この作業を行う方法は、すべての要素を巻き戻してクエリフィルタセクションに追加することです。

{ 
    "componentType": "PivotTable", 
    "properties.tags": {$in:["tag1"]}  
} 
+0

このように、私は依然としてサブ文書のエントリを解析してクエリ文字列を作成する必要があります。もう簡単な方法はありませんか?サブドッキング構造が複雑になると(異なる種類の値を持つ別のサブ文書を含む)、クエリの構築がそれほど容易ではないからです。 – qingl97

+0

はい.....それはゲームです:-) – profesor79

+0

@ qingl97私の答えがあなたを助けたらそれを受け入れてください:http://stackoverflow.com/help/accepted-answer – profesor79

関連する問題