Py学习  »  MongoDB

如何在MongoDB结果中使用字段值作为键名

Čamo • 4 年前 • 784 次点击  

有人可以告诉我,如果在MangoDB结果中可以使用字段值作为关键字。如果我有这样的文件

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

我想得到一个结果,其中代码值是

{'xxx': 'yyy'}, {'ooo': 'eee'}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43869
 
784 次点击  
文章 [ 2 ]  |  最新文章 4 年前
TsuanK
Reply   •   1 楼
TsuanK    5 年前

我不认为那是可能的。Mongo将结果的解释留给应用程序。这就是为什么mongodb是一个没有shema的数据库。

mickl
Reply   •   2 楼
mickl    5 年前

你必须使用 $arrayToObject 如果要动态构建密钥。它需要一系列 k v 字段作为参数。让它成为你可以使用的根 $replaceRoot 阶段,尝试:

db.col.aggregate([
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: [ [ { k: "$code", v: "$item" } ] ]}
        }
    }
])