red*_*med 1 mongodb aggregation-framework
我有一个包含两个文档的集合
{
"_id" : ObjectId("5784def78c669ee061519aaf"),
"name" : "nithin",
"sal" : 2000.0,
"age" : 20.0
},
{
"_id" : ObjectId("5784def78c669ee061519ab0"),
"name" : "nithin",
"sal" : 20.0,
"age" : 2000.0
}
Run Code Online (Sandbox Code Playgroud)
我想找到给定名字和相应年龄的最小萨尔
在这种情况下,最小 Sal 为 20,相应的年龄为 2000
运行我的查询如下:
db.test.aggregate([{
"$group":{"_id":"$name" ,"minSalary" :{"$min":"$sal"} , "ages":{"$addToSet":{"ageval":"$age","salval":"$sal"}}}}
,{"$project": {
"_id":0,
"sal":"$minSalary",
"ages": "$ages"
}
},
{
"$unwind":"$ages"
}
,
{
**"$match":{ "ages.salval":**20** }**
}
]
)
Run Code Online (Sandbox Code Playgroud)
但问题是我希望 $match 直接应用于 minSalary 而不是将过滤器值硬编码为 20 。请帮忙
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |