3

ネストされた配列内の文字列の存在によってドキュメントを取得したいと思います。たとえば、データ (文の依存関係の解析を表す) は次のようになります。

{'tuples': [['xcomp', 'multiply', 'using'], 
            ['det', 'method', 'the'], 
            ['nn', 'method', 'foil'], 
            ['dobj', 'using', 'method']]}

私が見つけた最も近い解決策は、それがリストのリスト['nn', ...]の2番目の位置であると想定しています:tuples

 db.c.find({'tuples.2.0' : 'nn'})

固定位置を緩める方法はありますか?タプル (内容ではない) は任意の順序にすることができます。

['nn', 'method', X]第 2 に、依存関係解析で名詞「メソッド」を意味する を含むドキュメントを取得できると非常に 便利です。

ありがとうございました!

4

1 に答える 1

4

とった!

db.c.find({'tuples' : {$elemMatch : {$all : ['nn']}}})
db.c.find({'tuples' : {$elemMatch : {$all : ['nn','method']}}})
于 2011-03-09T19:08:01.587 に答える