Объедините отношения один-ко-многим в MongoDB с ссылками на субдокументы
Рассмотрим документ с двумя массивами, lines
а также nodes
каждый из которых содержит множество вложенных документов и дополнительные вложенные документы, не показанные для ясности
{
{"lines": [
{
"guid": 1
"def": {
"n1": 49,
"n2": 50
}
},
...]
},
{"nodes": [
{
"guid": 49,
"def": {
"x": -43.9709,
"y": 14.8688,
"z": -121.988
}
},
{
"guid": 50,
"def": {
"x": -30.5955,
"y": 29.5512,
"z": -115.024
}
},
...]
}
}
Как можно запросить у Mongo вернуть реструктурированный документ lines
тянет только то, что нам нужно от nodes
?
{
{"lines": [
{
"guid": 1
"def": {
"n1": {
"guid": 49,
"def": {
"x": -43.9709,
"y": 14.8688,
"z": -121.988
}
}
"n2": {
"guid": 50,
"def": {
"x": -30.5955,
"y": 29.5512,
"z": -115.024
}
}
}
},
...]
}
}
Исходя из здорового понимания RDBMS и новичок в MongoDB. Я потратил много времени, взламывая систему агрегации, чтобы попытаться достичь этого, но безуспешно. Есть что-то простое, что мне не хватает?
Я ожидаю, что альтернативная модель данных может быть более подходящей. Вышеизложенное, без сомнения, начнет приводить к падению лимита документа BSON в 16 МБ для соответствующего варианта использования.