MongoDB-使用javascript更新子文档

时间:2018-09-28 15:27:50

标签: arrays database mongodb subdocument

我的apps集合中的文档每个都包含一个用户子集合。现在,我需要使用JavaScript为每个_id集合中的一组apps给每个应用更新一个用户。我不能为此定期调用update(),因为插入的数据将使用存储在应用程序文档中的公共密钥加密。因此,写入用户子文档中的数据取决于其中包含的应用程序文档。我需要做的伪代码:

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

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

1 个答案:

答案 0 :(得分:1)

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

看看 https://stackoverflow.com/a/37280419/5293110 除了自己做迭代之外的其他想法。