Mongodb Mongo聚合组和匹配
是否可以按uuid分组以查找最大版本,然后筛选标志?我希望先找到版本3,然后看看它是否有标志“Y”。似乎在分组之前应用了过滤器,因此我得到了版本1Mongodb Mongo聚合组和匹配,mongodb,mongodb-query,Mongodb,Mongodb Query,是否可以按uuid分组以查找最大版本,然后筛选标志?我希望先找到版本3,然后看看它是否有标志“Y”。似乎在分组之前应用了过滤器,因此我得到了版本1 {"uuid" : 1, "version" : 1, "name" : "Bob", "flag" : "Y"} {"uuid" : 1, "version" : 2, "na
{"uuid" : 1, "version" : 1, "name" : "Bob", "flag" : "Y"}
{"uuid" : 1, "version" : 2, "name" : "Bob", "flag" : "N"}
{"uuid" : 1, "version" : 3, "name" : "Bob", "flag" : "N"}
提前谢谢 ,如果我知道你的想法:
db.collection.aggregate({
$group: {
_id: "$uuid",
docs: {
$push: "$$ROOT"
},
"max_version": {
"$max": "$version"
}
}
},
{
$addFields: {
docs: {
"$filter": {
"input": "$docs",
"as": "d",
"cond": {
$eq: [
"$$d.version",
"$max_version"
],
$eq: [
"$$d.flag",
"Y"
]
}
}
}
}
})
创意
- $group by uuid并提取组上的最大
version
- 筛选文档数组中的
和max\u版本
标志
uuid
s实际上是相同的值吗?