Проблема проекции БД Монго - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть модель данных как

 {
        "_id" : "corks",
        "Zm9vYmFyYmF6" : {
            "metadata" : {
                "type" : "fooType",
                "version" : 1,
                "format" : "binary"
            },
            "value" : "some value"
        },
        "Zm9vYmFyYmF6enJheg==" : {
            "metadata" : {
                "type" : "barType",
                "version" : 1,
                "format" : "binary"
            },
            "value" : "other value"
        },
       ...
    }

Идентификаторы Zm9vYmFyYmF6, ... - давайте назовем их KEYS - это то, что я не могу легко определить, может иметь произвольное значение.

Эта модель хорошо подходит для большинства случаев использования, но плоха, когда я хочу проецировать документ только на определенные KEYS, соответствующие metadata.type == fooBar

С другой стороны, я хотел избежать использования массива в модели, чтобы упростить другие операции (которые я пропущу для краткости)

Как проецировать содержимое документа на массив элементов? так что позже я могу соответствовать.

[
    {
            "metadata" : {
                "type" : "fooType",
                "version" : 1,
                "format" : "binary"
            },
            "value" : "some value"
        },
        {
            "metadata" : {
                "type" : "barType",
                "version" : 1,
                "format" : "binary"
            },
            "value" : "other value"
        },
       ...
]

Есть ли способ динамического обхода атрибута верхнего уровня?

...