有人可以告诉我,如果在MangoDB结果中可以使用字段值作为关键字。如果我有这样的文件
{'code': 'xxx', 'item': 'yyy'} {'code': 'ooo', 'item': 'eee'}
我想得到一个结果,其中代码值是
{'xxx': 'yyy'}, {'ooo': 'eee'}
我不认为那是可能的。Mongo将结果的解释留给应用程序。这就是为什么mongodb是一个没有shema的数据库。
你必须使用 $arrayToObject 如果要动态构建密钥。它需要一系列 k 和 v 字段作为参数。让它成为你可以使用的根 $replaceRoot 阶段,尝试:
k
v
db.col.aggregate([ { $replaceRoot: { newRoot: { $arrayToObject: [ [ { k: "$code", v: "$item" } ] ]} } } ])