如何在Mongodb结果中将字段值用作键名

时间:2019-01-30 10:35:35

标签: mongodb field key-value

有人可以告诉我在mongodb结果中是否可以使用字段值作为键。如果我有

这样的文档
{'code': 'xxx', 'item': 'yyy'}
{'code': 'ooo', 'item': 'eee'}

我想得到结果,其中代码值将是关键

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

2 个答案:

答案 0 :(得分:4)

如果要动态构建密钥,则必须使用$arrayToObject。它使用kv字段的数组作为参数。要使其扎根,您可以使用$replaceRoot阶段,请尝试:

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

答案 1 :(得分:-1)

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