У меня есть данные в следующем формате. Он содержит документ для каждого участника продаж и его количество продаж за три дня в массиве.
{ "_id" : "Roger", "Sales" : [ 15, 2, 7 ] }
{ "_id" : "Sally", "Sales" : [ 11, 7, 3 ] }
{ "_id" : "Patrick", "Sales" : [ 3, 5, 9 ] }
{ "_id" : "Sarah", "Sales" : [ 9, 21, 11 ] }
{ "_id" : "Allen", "Sales" : [ 3, 9, 11 ] }
Я хотел бы вернуть имя торгового представителя и продажи для тех, у кого одинаковое количество продаж, по крайней мере, два из трех дней. Я ожидаю, что Салли, Сара, Патрик и Аллен вернутся.
Как я могу это сделать? Я попробовал следующее, но это не сработало:
db.SalesReport.aggregate([
{"$unwind":"$Sales"},
{"$group": {"$Name":"$Sales", "count":{"$sum":1}}},
{"$match": {"count":{"$gt":1}}},
])