MongoDB-管道按唯一集分组?

问题描述

我有一个看起来像这样的数据集:

{
   "model":"1234","trackingNumber":"9123..."
}

这些模型的值由许多记录共享,我正在尝试找出代表最常见分组的组合。

我有一条管道可以提供我想要的东西,但是在那里订购很重要。例如:

{
   "_id":["1234","4321"]
   "count":69761
},{
   "_id":["4321","1234"]
   "count":44321
},...

有什么方法可以使用_id来按唯一数组分组,而不管顺序如何? 到目前为止,我想到的唯一解决方案是按模型排序,并希望保留$addToSet操作顺序,但是两者都感觉很笨拙,性能也很差,我不认为操作顺序会得到保证。>

我的管道:

db.trackingIds.aggregate([
      
     {
        $match: { $and: [
                ...
           ] }
    },{
        $group: {
            _id : "$trackingNumber",models: {$addToSet: "$model"},count : { $sum: 1 }
        }
    },{
        $group: {
            _id : "$models",{
        $sort: {
            count:  -1
        }
    }
])

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)