gpt4 book ai didi

mongodb - MongoDB聚合多条件

转载 作者:IT老高 更新时间:2023-10-28 13:11:39 26 4
gpt4 key购买 nike

我想投影一个集合,仅当字段在范围内时才应用导出值。

种类:

db.workouts.aggregate({
$match: { user_id: ObjectId(".....") }
},
{
$project: {
'20': { $cond: [ {$gt: [ "$avg_intensity", 20]} , '$total_volume', 0] }
}
})

仅当 avg_intensity 在某个范围内时,我才需要获取该值。然后我将对投影结果进行分组和求和。

我正在尝试做的是应用 $gt 和 $lt 过滤器,但没有多大成功。

db.workouts.aggregate(
{
$match: { user_id: ObjectId("....") }
},
{
$project: {
'20': { $cond: [ [{$gt: [ "$avg_intensity", 20]}, {$lt: [ "$avg_intensity", 25]}] , '$total_volume', 0] }
}
})

如何同时应用 $gt 和 $lt 条件?

最佳答案

$cond 下组合逻辑条件运算符然后用 $and 包装条件运营商:

db.workouts.aggregate([
{ "$match": { "user_id": ObjectId("....") }},
{ "$project": {
"20": { "$cond": [
{ "$and": [
{ "$gt": [ "$avg_intensity", 20 ] },
{ "$lt": [ "$avg_intensity", 25 ] }
]},
"$total_volume",
0
]}
}}
])

关于mongodb - MongoDB聚合多条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23250849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com