MongoDB - 使用 javascript 更新子文档

MongoDB - Update subdocuments using javascript

我的 apps 集合中的文档每个都包含一个用户子集合。现在,我需要使用 javascript 为 apps 集合给定一组 _id 来更新每个应用程序的单个用户。我不能为此使用对 update() 的常规调用,因为插入的数据将使用存储在应用程序文档中的 public 密钥进行加密。因此,写入用户子文档的数据取决于它所在的应用程序文档。我需要做的伪代码:

foreach app in apps:
    app.users.$.encryptedData = encrypt(data, app.publicKey)

一种方法是找到所有应用程序,然后使用 forEach() 更新每个应用程序。然而,这对我来说似乎效率很低,因为所有应用程序文档都必须在数据库中找到两次,一次收集所有文档,然后另一次更新每个文档。必须有更有效的方法。

简短的回答是不,您不能使用 mongoDB 中的文档更新该文档中的值。

看看 除了自己进行迭代之外的其他想法。