首页 > 解决方案 > 如何从多个对象 mongoDB 中提取值

问题描述

我有一个文件和几个这样的集合

_id:objectId()
user:objectId()
notification:[
   0:{
     time:2021-08-02T02:46:37.816+00:00
     read:false
     status: added
     }
   1:{
     time:2021-08-02T02:46:37.816+00:00
     read:false
     status: added
     }
]

我想更新read:falseread:true.

目前我正在使用这个查询:

     db
    .get()
    .collection(collection.NOTIFICATION_COLLECTION)
    .update(
      { user: objectId(id), "notification.read": false },
      { $set: { "notification.$.read": true } },
      { multi: true }
    );

运行此查询后的结果:

notification:[
   0:{
     time:2021-08-02T02:46:37.816+00:00
     read:true
     status: added
     }
   1:{
     time:2021-08-02T02:46:37.816+00:00
     read:false
     status: added
     }
]

第一个值已更改,我需要将所有值更新为read : true- 我该怎么做?

标签: javascriptnode.jsmongodb

解决方案



推荐阅读