2017-07-31 141 views
-1

user = { 'userid':'111', 'mail':[{ 'time':22222, 'info':'this is a info1', 'read':false, },{ 'time':33333, 'info':'this is a info2', 'read':false, }] } 更新使用猫鼬

的话,我想改变一个用户的读标志设置为true一个对象的MongoDB中的子阵列中的所有值,我怎么能为它做什么?

+0

您好,欢迎来到堆栈溢出。为了更好地获得有关问题的帮助,您需要展示一个[最小,完整且可验证的示例](https://stackoverflow.com/help/mcve),说明您试图实现的目标以及预期的输出结果。意思是,现在你的代码是什么,你想要做什么以及你的代码在做什么? – danny

回答

-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); 
      } 
     }); 
+0

位置$运算符充当与查询文档相匹配的第一个元素的占位符 源 - https://docs.mongodb.com/manual/reference/operator/update/positional/#up。 _S_ – akshay

0

这里是一个简单的例子:我的模型是用户!我的网址是数据库的路径

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}); 

});