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