Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 组合不,和,和大小_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 组合不,和,和大小

Mongodb 组合不,和,和大小,mongodb,aggregation-framework,Mongodb,Aggregation Framework,MongoDB有一个很好的问题,由(和更通用的版本at)描述 作为一种解决方法,我试图将我的查询表示为和的组合,而不是和大小: { '$match' => { '$and' => [ items: {'$and' => ['$size' => 0, '$size' => 1, ... until the length I need is reached]}, ... ], }}, 我不断获取

MongoDB有一个很好的问题,由(和更通用的版本at)描述

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

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

我不断获取
失败,错误为10068:“异常:无效运算符:$和”
。我是否忽略了一些非常明显的内容?

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

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

哦,所以我需要重复里面的项目和/或,而不是相反?是的,我想是的。这就是您得到
无效运算符
错误的原因。