0

空でない「e-campaigns」配列と「p-campaigns」配列の両方を含むドキュメントを探しています。

 db.coll.find( { 'p-campaigns':{$ne:[]} ,  'e-campaigns' : {$ne:[]} }     )

各配列で個別にクエリを実行し、空でない と を含むドキュメントを検索しますp-campaignse-campaigns、組み合わせた条件は空になります。空p-campaignsでない両方のドキュメントがあることは知っています。e-campaignsを使用してみまし$andたが、同じ結果になりました。両方の配列が空でないドキュメントはありません。

私はこれを正しい方法で行っていますか?そうでない場合、なぜですか?これは、上記の条件でこのクエリを実行する論理的な方法のようです。ありがとう。

4

1 に答える 1

1

ここに私の変種があります:

> db.a.save({x:[], y:[]})
> db.a.save({x:[1], y:[]})
> db.a.save({x:[], y:[1]})
> db.a.save({x:[1], y:[1]})
> db.a.find()
{ "_id" : ObjectId("52248f5efb41276d1f3e3164"), "x" : [ ], "y" : [ ] }
{ "_id" : ObjectId("52248f61fb41276d1f3e3165"), "x" : [ 1 ], "y" : [ ] }
{ "_id" : ObjectId("52248f66fb41276d1f3e3166"), "x" : [ ], "y" : [ 1 ] }
{ "_id" : ObjectId("52248f69fb41276d1f3e3167"), "x" : [ 1 ], "y" : [ 1 ] }
> db.a.find({ 'x':{$ne:[]} ,  'y' : {$ne:[]} })
{ "_id" : ObjectId("52248f69fb41276d1f3e3167"), "x" : [ 1 ], "y" : [ 1 ] }
于 2013-09-02T13:17:26.183 に答える