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

Update a given mongo field in unknown parents fields

假设我有一个这样结构的文档:

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

我知道:

我想更新每个 "keytoupdate" 个字段,无论它们有多少。

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

谢谢!

我会回答我自己的问题:没有办法做到这一点,我们不能玩动态键,算了吧!但有 2 个解决方法:

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