我的apps
集合中的文档每个都包含一个用户子集合。现在,我需要使用JavaScript为每个_id
集合中的一组apps
给每个应用更新一个用户。我不能为此定期调用update()
,因为插入的数据将使用存储在应用程序文档中的公共密钥加密。因此,写入用户子文档中的数据取决于其中包含的应用程序文档。我需要做的伪代码:
foreach app in apps:
app.users.$.encryptedData = encrypt(data, app.publicKey)
一种方法是找到所有应用程序,然后使用forEach()
更新每个应用程序。但是,这对我来说似乎效率很低,因为所有应用程序文档都必须在数据库中找到两次,一次是收集所有应用程序文档,然后是一次更新每个文档。必须有一种更有效的方法。
答案 0 :(得分:1)
简短的回答是,不,您不能使用该文档中的值更新mongoDB中的文档。
看看 https://stackoverflow.com/a/37280419/5293110 除了自己做迭代之外的其他想法。