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}}
] } );

这将返回任何具有一个或多个“item.X”的文档,在这种情况下为 1、2 或 3 集。

于 2013-04-25T03:58:12.233 回答