Я очень новичок в mongodb и, следовательно, интенсивно работая с SQL, я хочу попробовать сделать то же самое с mongo, как и с SQL-запросом.
У меня есть 2 коллекции:
Полеты Атрибуты: ID (STRING) ПРОВЕРЕНО (STRING) ДЕЙСТВИТЕЛЬНО (STRING)
Миссия Атрибуты: ID (STRING) ПОЛЕТЫ (СТРЕЛКА)
Мне нужно получить данные в соответствии с запросом SQL, который выглядит (теоретически):
SELECT VERIFIED, VALID
FROM FLIGHT
WHERE FLIGHT.ID IN
( SELECT FLIGHTS
FROM MISSION
WHERE MISSION.ID = "somestring"
AND
FLIGHT.ID = MISSION.FLIGHTS)
Пример документов в коллекциях:
Полет
{
"_id": ObjectId("5c4ae5b6a2ac3bc9f2e1b943"),
"verified": "true",
"valid": "true"
}
Миссия
{
"_id": ObjectId("5c5acdd8bbf999dc34d96de7"),
"flights":[
ObjectId("5c4ae5b6a2ac3bc9f2e1b943"),
ObjectId("5c4ae5eea2ac3bc9f2e1b961")
]
}
Я очень смущен тем, как мне следует использовать "$ lookup" и "$ unwind".
Проще говоря, цель моего агрегирования:
Мне нужно получить ДЕЙСТВИТЕЛЬНЫЕ и ПРОВЕРЕННЫЕ все ПОЛЕТЫ, которые присутствуют в МИССИИ, чей ID "somestring"