Что касается Монго 3.2, ответы на этот вопрос больше не верны. Новый оператор $ lookup, добавленный в конвейер агрегации, по существу идентичен левому внешнему соединению:
https://docs.mongodb.org/master/reference/operator/aggregation/lookup/# pipe._S_lookup
Из документов:
{
$lookup:
{
from: ,
localField: ,
foreignField: ,
as:
Конечно, Mongo является не реляционной базой данных, а разработчики стараются рекомендовать конкретные варианты использования для $ lookup, но по крайней мере, начиная с 3.2, соединение теперь возможно с MongoDB.
Если я правильно помню, вы можете получить доступ к картам через map[key][sub-key]
. Так что в вашем случае это будет:
if (sysName == 'MYSYS'){
mySuperVariable = envs[environment][sysName][subSysName][detailName]
}
else if (sysName == 'MYSYS2'){
mySuperVariable = envs[environment][sysName][subSysName]
}
(...)
sysVer = mySuperVariable['version']