gpt4 book ai didi

mongodb - 如何获得聚合 - $addFields 上的 $group 计数结果?

转载 作者:可可西里 更新时间:2023-11-01 10:45:35 27 4
gpt4 key购买 nike

我有以下查询。

   db.Collection.aggregate([
{
"$match":{
"index": 1
}
},

{
"$addFields":{
"DATE": $var1
"array":"$array1
}
}

])

这是查询的结果。

输出 1

    {
"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}

}


}
])

输出 2

{
"_id" : [
100,
101,
105,
106,
201,
205,
208,
209],

"count" : 4.0

}

“计数”结果将复制到所有结果上。

但是 $group 会产生一个错误的结构来读取所有数据。

如何将所有 OUTPUT1OUTPUT2 的 $group "count"合并?

     {
"$addFields":{
"DATE": $var1
"array":"$array1
"count": $count
}
}

使用 $group "count",但我不想要 $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
}
...
...

最佳答案

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}

}


}
])

关于mongodb - 如何获得聚合 - $addFields 上的 $group 计数结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52888655/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com