【问题标题】:update all values in the sub array of one object in mongodb using mongoose使用 mongoose 更新 mongodb 中一个对象的子数组中的所有值
【发布时间】:2018-01-07 01:00:49
【问题描述】:

user = { 'userid':'111', 'mail':[{ 'time':22222, 'info':'this is a info1', 'read':false, },{ 'time':33333, 'info':'this is a info2', 'read':false, }] }

那么,我想将一个用户的读取标志更改为真,我该怎么做呢?

【问题讨论】:

  • 您好,欢迎来到堆栈溢出。为了更好地获得有关您的问题的帮助,您需要向minimal, complete and verifiable example 显示您正在尝试实现的目标和预期的输出。意思是,你现在的代码是什么,你想做什么以及你的代码在做什么?

标签: arrays node.js mongoose


【解决方案1】:

这是我的答案:

        User.update({
            'userid':userid,
            'mails':{
                '$elemMatch':{
                    'read':false
                }
            }
        },{
            '$set':{
                'mail.$.read':false,
                'newmail':0,
            }
        }, { multi: true }, function (err, data) {
            if(err > 0){
                console.log('ReadMail err', err);
            }
        });

【讨论】:

【解决方案2】:

这是一个简单的例子:我的模型是 User !!我的 url 是数据库的路径

    var newUser = new User();
  newUser.name = request.body.name;
  newUser.email = request.body.email;  
  newUser.pass = request.body.pass;
  newUser.position = request.body.pos;
  newUser.phone = request.body.phone;
mongoose.connection.openUri(url);


  var myquery = { _id : request.params._id };

    console.log("updating...")
    User.findByIdAndUpdate(myquery,{$set: newUser},{new: true},function(err, result) {
      if(err)
      {
       throw err;
      }
      response.json({code: 0 , result});

}); 

【讨论】:

    猜你喜欢
    • 2015-01-31
    • 2018-01-21
    • 2018-12-16
    • 2013-03-19
    • 2018-02-21
    • 2023-01-18
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多