gpt4 book ai didi

mongodb - 计算 MongoDB 中的唯一值

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

在我的 mongoDB 管道的 $facet 阶段,因为一些记录引用相同的“customer.id”,我需要根据“customer”的 unique 出现次数进行计数。ID”。我试过这个:

"totalCustomers" : [ { $group : { "$customer.id" : { $sum: 1 } } } ]

...但最终出现错误:“字段名称‘$customer’不能是运算符(operator)名称”。

我也试过这个:

"totalCustomers" : [  { "$group" : { "_id" : "$customer.id", "count" : { "$sum" : 1 }}}   ]

...这不会出错,但会给出所有记录,而不是所有这些记录的计数。

对我的数据集中每个唯一的“$customer.id”进行计数的语法是什么?我的理解是我需要在 $group$project 阶段使用 $sum ,但不清楚具体是什么这应该看起来像。

为了进一步说明,如果我的数据结构是这样的:

[
{
id: '111',
someProp: <value>,
customer: { id: '222' }
},
{
id: '112',
someProp: <value>,
customer: { id: '222' }
}
]

...我应该以“totalCustomers: 1”结束。

最佳答案

您可以在两个步骤内完成:

[
{$group: {_id: null, customerIds: {$addToSet: '$customer.id'}}},
{$project: {uniqueCustomers: {$size: '$customerIds'}}}
]

这将创建一个包含所有 customer.id 的集合(从技术上讲是一个没有重复的数组)并获取其大小。

关于mongodb - 计算 MongoDB 中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51047405/

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