MongoDB - поиск элементов с одинаковым значением

У меня есть данные в следующем формате. Он содержит документ для каждого участника продаж и их количество продаж за три дня в массиве.

{ "_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}}},
])

Зачем вам их ждать? Потому что во всех них цифра 11? Кажется, в вашем объяснении чего-то не хватает. Это вопрос домашнего задания?

Neil Lunn 30.04.2018 23:13

И вы также должны сделать group на _id: {"$group": {"_id":"$Sales", "count":{"$sum":1}}}

Rahul Raj 30.04.2018 23:15

Насколько я могу судить по вашим критериям, только «Роджер» не соответствует им на самом деле, поскольку все остальные делят «как минимум две цифры продаж» с кем-то еще. Вам действительно нужно объясниться здесь, потому что это действительно похоже на домашнее задание, и есть совершенно разные решения для решения этого либо в небольшом, либо в «реальном мире» масштабе.

Neil Lunn 01.05.2018 04:02

@Neil Lunn: Да, это проблема, над которой я работал над финальной презентацией класса, поэтому в гораздо меньшем масштабе, чем в реальном мире. Мы должны представить классу, как мы вернем правильные результаты, то есть те, которые соответствуют как минимум двум из трех продаж. Вы правы, что я скучал по Патрику и отредактировал это выше.

HasanSalah 01.05.2018 23:39

Я думаю, ваш инструктор хочет, чтобы вы сами решили эту проблему. Нет смысла рассказывать о том, что кто-то решил за вас. У решения есть логический курс действий, и я предполагаю, что ваш инструктор в настоящее время пытается научить вас чему-то о сложности, учитывая различные подходы.

Neil Lunn 01.05.2018 23:45
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
5
53
0

Другие вопросы по теме