MongoDB动态子字段名称

时间:2020-07-23 14:30:51

标签: mongodb aggregation-framework

我有一个类似的文件:

{
  idx: {a: 1, b: 2, c: 3},
  v: "a"
}

在聚合查询中,我想通过获取x的值并使用它在v中找到相应的值来向文档中添加字段idx。生成的文档如下所示:

{
  idx: {a: 1, b: 2, c: 3},
  v: "a",
  x: 1
}

我已经尝试过诸如$addFields: {x: "$idx.$a"}$addFields: {x: "$idx[$a]"}之类的事情,但是这些都不起作用。我已经扫描了管道运算符的列表,但是看不到有任何帮助。这可能吗?

1 个答案:

答案 0 :(得分:1)

没有简单的方法,但是您可以利用$objectToArray运算符来获取std::wstring_convert作为键和值的数组,然后将$filter$arrayElemAt一起使用来进行匹配元素。

idx

Mongo Playground