Я использую mon go в течение нескольких месяцев, и, помимо простых c операций запроса и агрегирования, я еще не очень хорошо знаком с агрегатами ... Я пришел с языка sql ..
У меня есть база данных, подобная этой:
{
ownerId: "A",
email: "a@a.com",
phone: "333",
current: true,
deleted: false
},
{
ownerId: "A",
email: "b@b.com",
phone: "444",
current: true,
deleted: false
},
{
ownerId: "A",
email: "b@b.com",
phone: "555",
current: true,
deleted: false
},
{
ownerId: "B",
email: "a@a.com",
phone: "333",
current: true,
deleted: false
},
{
ownerId: "C",
email: "a@a.com",
phone: "333",
current: true,
deleted: false
},
{
ownerId: "B",
email: "a@a.eu",
phone: "333",
current: true,
deleted: false
}
Результат, который я хотел бы получить: сгруппирован по ownerId, я хочу знать, есть ли у этого ownerId дублирующийся «адрес электронной почты» ИЛИ дубликат «phone» в адресной книге. Условие состоит в том, что ownerId X не может иметь два или более одинаковых адреса электронной почты или один и тот же телефон. Я пытаюсь разными способами, но я тоже не могу найти способ начать .. Мне нужна ваша помощь ..
https://mongoplayground.net/p/D6X4WTyAIiR
Ожидаемое вывод (basen в этом примере) выглядит примерно так:
[
{
ownerId : "A",
emails: [
"b@b.com"
],
phones :[]
}
]
Большое спасибо!