0

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"。我是否忽略了一些非常明显的东西?

4

1 回答 1

0

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

db.test.aggregate(
  {$match:{
    $or:[ {items:{$size:0}}, {items:{$size:4}} ]} // just include all your size conditions
  }
)
于 2013-05-23T02:21:10.927 回答