我有以下查询。
db.Collection.aggregate([
{
"$match":{
"index": 1
}
},
{
"$addFields":{
"DATE": $var1
"array":"$array1
}
}
])
这是查询的结果。
OUTPUT1
{
"DATE" : 181019
"array" : 100,101,105,106,201,205,208,209
}
...
...
,我将获得$ group的结果。 我将使用$ array1。
db.Collection.aggregate([
{
{
$group:{
"_id":"$array1",
"count":{"$sum" : 1}
}
},
{
$sort: {"count" : -1}
}
}
])
OUTPUT2
{
"_id" : [
100,
101,
105,
106,
201,
205,
208,
209],
"count" : 4.0
}
“计数”结果将复制到所有结果中。
但是$ group的结构不好以读取所有数据。
如何将所有 OUTPUT1 与 OUTPUT2 的$ group“计数”合并?
{
"$addFields":{
"DATE": $var1
"array":"$array1
"count": $count
}
}
使用$ group“计数”,但我不希望$ group结构。
{
"DATE" : 181019
"array" : 100,101,105,106,201,205,208,209
"count" : 4.0
},
{
"DATE" : 181019
"array" : 103,104,105,106,201,205,208,210
"count" : 12.0
}
...
...
答案 0 :(得分:0)
mongo group query how to keep fields
我找到了我想要的。 答案是$ group技巧。
首先,将$ addfield的查询移至$ group {query}。
其次,将{$ first:{}}添加到$ addfield的查询中 这使得$ addfield的查询$ group查询。
$group:{
_id: $group_var,
name:{$first:{$addfield's query}}
"count": $count
}
这是将其放入的结果。
db.Collection.aggregate([
{
{
$group:{
"_id":"$array1",
"array":{"$first":"$array1}
"count":{"$sum" : 1}
}
},
{
$sort: {"count" : -1}
}
}
])