2017-07-31 139 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}); 

});