我有一个mongo聚合查询,该查询计算COUNT
,MIN
,MAX
和BLANK
个不同密钥的计数。
db.getCollection('ReportTestProcess').aggregate([
$group": {
"_id":0,
"Inititated_on_MIN": {
"$min": "$Inititated_on.v"
},
"Inititated_on_MAX": {
"$max": "$Inititated_on.v"
},
"Text_COUNT":{$sum:1},
"Text_BLANK": {
"$sum": {
"$cond": [
{
"$ifNull": [
"$Inititated_on.v",
false
]
},
0,
1
]
}
}
}])
现在,我需要UNIQUE_COUNT
个元素。我想到的唯一方法是对字段进行分组,但是分组会影响MIN
,MAX
或COUNT
答案 0 :(得分:1)
您可以使用$addToSet
集合始终保留唯一值。您的代码应如下所示。
db.getCollection('ReportTestProcess').aggregate([
$group": {
"Inititated_on_MIN": {
"$min": "$Inititated_on.v"
},
"Inititated_on_MAX": {
"$max": "$Inititated_on.v"
},
"Text_COUNT":{$sum:1},
"Text_UNIQUE": { $addToSet: "$Inititated_on.v" }
"Text_BLANK": {
"$sum": {
"$cond": [
{
"$ifNull": [
"$Inititated_on.v",
false
]
},
0,
1
]
}
}
}])