Я ищу пример кода агрегации mongo, который запрашивает несколько полей из коллекции и группирует пару полей. Моя коллекция:spark-scala-mongo-aggregate: запрос нескольких полей и группы по 2 полям
events:
{
_id
prodId:
location:
status:
user:
date:
}
Вышеупомянутая коллекция очень плоская. Я ищу результаты как ниже:
For status "Completed" (This is a $match condition)
{Product: abc
{Location: US
{user, date}
{user, date
{user, date}
.......}
{Location: APAC
{user, date}
{user, date
{user, date}
.......}}
{Product: XYZ
{Location: US
{user, date}
{user, date
{user, date}
.......}
{Location: APAC
{user, date}
{user, date
{user, date}
.......}}
........
Как мы пишем это в рамках агрегации с помощью вложенной $group
и $match
или любые другие этапы агрегации ..
Любого совета или помощи очень ценятся. Благодарю.
Камилла: Спасибо, что вернулись ко мне. Я отредактировал свой пост с более реалистичными полями сбора и тем, что мне нужно достичь. Я ищу код агрегации. в настоящее время я получил это далеко. Я ограничиваю место для США в настоящее время для сокращения набора данных. 'db.events.aggregate ([ {$ match: {$ and: [ {location: 'US'}, {status: 'end'}, {prodId: {$ ne: null}}, { пользователь: {$ пе: NULL}} ]}} , {$ группа: \t { \t \t _id: "$ PRODID", \t \t пользователей: {$ толчок: "$ пользователя"} \t}} , \t {$ out: "eventProdUsersAgg"} ], {allowDiskUse: true} ) '. Но это только дает мне набор пользователей для продукта. – Vamsi
Как мне изменить это, чтобы получить местоположение и дату и в том формате, который я упомянул в своем посте? – Vamsi