【发布时间】:2016-07-13 04:26:34
【问题描述】:
我有一个包含两个文档的集合
{
"_id" : ObjectId("5784def78c669ee061519aaf"),
"name" : "nithin",
"sal" : 2000.0,
"age" : 20.0
},
{
"_id" : ObjectId("5784def78c669ee061519ab0"),
"name" : "nithin",
"sal" : 20.0,
"age" : 2000.0
}
我想找到给定名称和对应年龄的最低sal
在这种情况下,最低 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** }**
}
]
)
但问题是我希望 $match 直接应用于 minSalary 而不是将过滤器值硬编码为 20 。请帮忙
【问题讨论】:
标签: mongodb aggregation-framework