【发布时间】:2022-10-31 09:13:33
【问题描述】:
如果 active 字段是一个布尔值,我如何从聚合查询中排除整条记录是 false,好吗?
user.aggregate([
{
'$search': {
'index': 'search-index',
'text': {
'query': searchTerm,
'path': 'name'
}
}
}, {
'$project': {
'active': {
'$filter': {
'cond': {
'$ne': [
'$active', false
]
}
}
},
'createdAt': 1,
'email': 1,
'id': 1,
'avatar': 1,
'name': 1,
'username': 1,
}
}, {
'$sort': {
'createdAt': -1
}
}, {
'$skip': skip
}, {
'$limit': limit
}
])
我已经尝试了上述的很多变体,但没有成功。任何帮助深表感谢!干杯,雷蒙德。
【问题讨论】:
-
如果您可以共享示例输入数据和预期输出,那就太好了。而且我怀疑你错过了
$filter运算符的input属性/参数。 -
嗨永顺,根据文档,输入是一个解析为数组的表达式,这让我在这方面感到困惑,因为“活动”字段是一个布尔字段,我想从聚合中排除“活动”的记录=假
标签: mongodb mongodb-query aggregation-framework