我有一个mongodb数据库,包含ECommerceProducts的实体。有两个字段,“productId”和“skuId”。事情是许多记录是重复的,即两个条目可能具有相同的“productId”以及相同的“skuId”。
我想找到一组具有多个(不同)skuId的productIds。
这就是我现在所拥有的:
db.urls.aggregate([
{ $group: {
_id: { productId: "$productId" },
count: { $sum: 1 }
} },
{ $match: {
count: { $gte: 2 }
} },
{ $sort : { count : -1} },
{ $limit : 10 }
]);
此代码为我提供了Duplicate productId的列表以及它们发生的次数。我怎样才能获得这些包含的不同skuId的列表?
答案 0 :(得分:1)
您可以使用$addToSet
累加器
db.urls.aggregate([
{ $group: {
_id: { productId: "$productId" },
skuId: {$addToSet: "$skuId"},
count: { $sum: 1 }
} },
{ $match: {
count: { $gte: 2 }
} },
{ $sort : { count : -1} },
{ $limit : 10 }
]);
这将返回多次出现的所有产品ID,其中包含一组不同的skuId。