1

基本的に、$in を使用してサブドキュメントに基づいてドキュメントを検索することは可能です。たとえば、私が持っていたとします:

array(
'item.1',
'item.2',
'item.3
)

次のドキュメントを返します。

{
    item {
        1: {

        }
    }
}
{
    item {
        2: {

        }
    }
}
{
    item {
        3: {

        }
    }
}

使用できるものdb.inventory.find( { qty: { $exists: true, $nin: [ 5, 15 ] } } )があるかどうかはわかっていますが、$in を使用してそれを行うにはどうすればよいでしょうか?

4

1 に答える 1

3

次の形式のクエリを使用できます。

db.collection.find ( { $or : [
          {"item.1":{$exists:true}},
          {"item.2":{$exists:true}},
          {"item.3":{$exists:true}}
] } );

これは、1 つ以上の "item.X" (この場合は 1、2、または 3 セット) を持つドキュメントを返します。

于 2013-04-25T03:58:12.233 に答える