Как использовать значение поля в качестве имени ключа в результате Mongodb - PullRequest
0 голосов
/ 30 января 2019

Может кто-нибудь сказать мне, пожалуйста, если возможно использовать значение поля в качестве ключа в результате mongodb.Если у меня есть документы, такие как

{'code': 'xxx', 'item': 'yyy'}
{'code': 'ooo', 'item': 'eee'}

, я бы хотел получить результат, где значением кода будет ключ, такой как

{'xxx': 'yyy'}, {'ooo': 'eee'}

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы должны использовать $ arrayToObject , если хотите динамически создавать ключи.В качестве параметра он принимает массив из полей k и v.Чтобы сделать его root, вы можете использовать $ replaceRoot stage, попробуйте:

db.col.aggregate([
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: [ [ { k: "$code", v: "$item" } ] ]}
        }
    }
])
0 голосов
/ 30 января 2019

Я не думаю, что это возможно.Монго оставляет интерпретацию результата в приложении.Вот почему mongodb - это база данных без шемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...