结合不,和,大小

时间:2013-05-23 00:29:14

标签: mongodb aggregation-framework

MongoDB有一个由https://jira.mongodb.org/browse/SERVER-478描述的精彩问题(以及https://jira.mongodb.org/browse/SERVER-589的更通用版本)

作为一种解决方法,我试图将我的查询表达为和,而不是和大小的组合:

     { '$match' => {
      '$and' => [
        items: {'$and' => ['$size' => 0, '$size' => 1, ... until the length I need is reached]},
        ...
      ],
    }},

我一直在failed with error 10068: "exception: invalid operator: $and"。我忽略了一些非常明显的事情吗?

1 个答案:

答案 0 :(得分:0)

首先,如果您尝试使用$and,则可能无法获得任何结果,因为查询将尝试查找包含大小应与您提供的所有大小匹配的项目的文档(0,1,。 ..你需要的长度)。我想你应该试试$or。其次,以下是您可能真正需要的:

db.test.aggregate(
  {$match:{
    $or:[ {items:{$size:0}}, {items:{$size:4}} ]} // just include all your size conditions
  }
)