我正在使用mogodb聚合函数,我想只推送包含值的数据。我不希望结果集中有空白值
我写了以下代码
{ '$group' => { '_id' => '$user_id',
'count' => { '$sum' => 1 },
'row' => {
'$push' => {
'search_term' => '$search_term'
}
}
}
},
{ '$match' => { '_id' => { '$nin' => ['', nil] } } },
{ '$sort' => { 'count' => -1 } }
在推送搜索字词时,我需要对上述代码进行哪些更改,删除空白值
答案 0 :(得分:1)
尝试在 $group
管道阶段中使用$addToSet
与$cond
运算符的组合。 $cond
运算符将使用如果row
不为空的逻辑添加元素到search_term
数组,则添加字段else添加布尔值{{1到数组。然后,您可以使用 false
阶段中的$setDifference
过滤掉false
值:
$project