У меня есть модель данных как
{
"_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"
},
...
]
Есть ли способ динамического обхода атрибута верхнего уровня?