Моя база данных содержит пользователя collection
в виде:Совокупный запрос для одной коллекции
{
"userId": "12345",
"vertical": "BFS",
"Role": "Manager"
},
{
"userId": "12345",
"vertical": "Insurance",
"Role": "Manager"
},
{
"userId": "12367",
"vertical": "BFS",
"Role": "Associate"
}
Я знаю vertical
и manager
и от этого я должен найти userId
. Затем я должен найти verticals
конкретного пользователя.
Как и в SQL:
select vertical
from user
where role="Manager"
and userid in (
select userid from user
where vertical="BFS" and role="Manager"
)
Просьба помочь в этом. Я новичок в этой технологии.
бы не этот перерыв на что-то вроде этого - { "USERID": "12345", "вертикали": "BFS", "Роль": "Менеджер" }, { "идентификатор пользователя": "12345", "вертикали": "Страхование", "Роль": "Associate" }, так как ему нужно найти все вертикалей для идентификатора пользователя 12345. –
Нет, это Wouldn» т. Я попытался с образцом данных, которые указаны в вопросе, и мой ответ имеет вывод, предполагая, что я правильно понял вашу проблему. Я также подытожил свое понимание в своем ответе. – notionquest
Он сломается для данных, которые я дал. Человек может иметь разные обозначения для разных вертикалей. Ваша фаза $ match удалит документ для userid 12345, где он не является менеджером, и вы не получите его вертикаль для этого документа. –