Объедините отношения один-ко-многим в 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 МБ для соответствующего варианта использования.

0 ответов

Другие вопросы по тегам