更新未知父项字段中的给定mongo字段

时间:2015-04-20 12:28:42

标签: mongodb mongodb-query

假设我的文档结构如下:

datas: {
    foo: {
        ...
        keytoupdate: [...]
    },
    whatever: {
        ...
        keytoupdate: [...]
    },
    anystring: {
        ...
        keytoupdate: [...]
    },
    ...: {
        ...
        keytoupdate: [...]
    }
}

我知道:

  • "数据的每个直接子属性"文档有一个" keytoupdate"字段。
  • "数据的直接子属性"文件因具体情况而异:不一定是相同的名称,也不是相同的数字。

我想更新每个" keytoupdate"田野,无论有多少田地。

问题是:我该怎么做?是否有像$ that does the same job for Array这样的魔术运算符?

谢谢!

1 个答案:

答案 0 :(得分:2)

我会回答我自己的问题:没有办法做到这一点,我们无法使用动态键,只是忘了它!但有2种解决方法:

  1. @chridam建议的最佳解决方案是重新设计架构以创建一个对象数组,其中键是数组的一部分,您可以看到this question for more details. < / LI>
  2. 如果不能,另一个(但不是很好的)解决方案是对文档中可能存在的每个字段发出请求,而不是尝试在一个请求中执行此操作。这是一个非常糟糕的解决方案,特别是如果您的文档可能包含大量字段,并且您必须知道文档中可能包含哪些字段。 这是一个糟糕的解决方案,绝对没有优化,但它具有易于实施的优点