Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Node.js 如果输入为空,则MongoDB匹配所有文档_Node.js_Mongodb - Fatal编程技术网

Node.js 如果输入为空,则MongoDB匹配所有文档

Node.js 如果输入为空,则MongoDB匹配所有文档,node.js,mongodb,Node.js,Mongodb,我使用聚合和匹配从数据库中获取数据。这是一个简化版本: Palette.aggregate([ {"$match": { type: paletteType, numberOfColors: {[colorNumberFilterTypeOperator]: colorNumber}, tags: paletteTag }]); 标记是一个数组 我想这样做,如果paletteTag为空,它将返回包含tags字段中任何内容的文档,但现在它

我使用聚合和匹配从数据库中获取数据。这是一个简化版本:

Palette.aggregate([
    {"$match": { 
      type: paletteType, 
      numberOfColors: {[colorNumberFilterTypeOperator]: colorNumber},
      tags: paletteTag 
    }]);
标记是一个数组

我想这样做,如果paletteTag为空,它将返回包含tags字段中任何内容的文档,但现在它不返回任何内容,因为它试图匹配不存在的空白标记

我可以做一个if语句来检查paletteTag的值,如果它是空的,则将其设置为与所有标记匹配的值,但我不确定它会是什么。执行类似/*/g的操作可以返回带有标记的任何内容,但如果标记数组为空(等于[]),则不会返回它。我想返回任何东西,不管它是否在该字段中有标记

var match = {
  type: paletteType, 
  numberOfColors: {[colorNumberFilterTypeOperator]: colorNumber}
}

paletteTag? match.tags =  paletteTag : null;  //add tag criteria only if palletTag exists
Palette.aggregate(
  [{
    "$match": match
  }]);