8

私は次の文書を持っています:

{_id : 1, numbers : [-1000, 1000]}
{_id : 2, numbers : [5]}

数値配列に-10から10(この場合は_id:2)の値を持つドキュメントを検索するクエリを取得しようとしています。ただし、次のことを試してみると、次のようになります。

db.foo.find({numbers : $and : [{$gt : -10},{$lt : 10}]})

すべてのドキュメントを返します。これはmap-reduceなしで行うことは可能ですか?ありがとう、-JWW

4

1 に答える 1

8

$ elemMatchを使用して、配列内の要素が指定された一致式と一致するかどうかを確認できます。

この場合、これを使用して、numbers配列に-10から10の間の要素が含まれるドキュメントを取得できます。

   db.foo.find( { numbers : { $elemMatch : { $gt : -10 , $lt : 10 } } } );

これにより、_id:2ドキュメントが返されます。

于 2012-08-27T20:24:43.390 に答える