Node.js-MongoDB-arrayFilters

时间:2018-12-21 11:35:54

标签: node.js mongodb updates

我在nodejs应用程序中使用mongodb。我想在基本json文件中更新。 例:我有3条已读的通知:false,如果执行请求,我想将此3条通知更新为:true。

  

但这是行不通的。我收到此消息(节点:12884)UnhandledPromiseRejectionWarning:MongoError:更新操作中无法识别的字段:arrayFilters

     

感谢您的帮助!!!!!!!

Model.js

const UserSchema = mongoose.Schema(
{
   username: { type: String, required: true, validate: usernameValidator },
   notifications: [{
      sender_id: { type: mongoose.Schema.Types.ObjectId, ref: 'User'},
      message: { type: String},
      viewProfile: { type: Boolean, default: false},
      created: { type: Date, default: Date.now()},
      read: { type: Boolean, default: false},
      date: { type: String, default: ''}
   }]
});

notifiRoutes.js

User.update(
    { _id: req.user._id },
    { $set: { "notifications.$[elem].read": true } },
    { arrayFilters: [ { "elem.read": false } ], multi: false }
)

如果用户有10条通知,其中(read:false),并且他单击了我的网站上的按钮,则此属性读取后必须更新其值为true的值,例如10条通知(read:true)

0 个答案:

没有答案