2014-02-28 48 views
0

我想一次更新幾個字段的(位置和電子郵件),但不工作:多場MongoDB的更新不起作用

db.collection('userlist').update(
     { username:req.body.username}, 
     { 
      location:req.body.location, 
      email:req.body.email 
     }, 
     { upsert: false }, 
     function(err, success) { 
      if(err) 
      console.log(err); 
      else 
      console.log(success); 
     } 
    ); 

出於某種原因,如果我只包括一個那麼它的工作原理

db.collection('userlist').update(
    { username:req.body.username}, 
    { 
     location:req.body.location 
    }, 
    { upsert: false }, 
    function(err, success) { 
     if(err) 
     console.log(err); 
     else 
     console.log(success); 
    } 
); 

怎麼回事?

+1

究竟是怎麼回事錯了呢?你不會在這裏展示我們。您正在嘗試更新的文檔會給我們提供線索。 –

回答

0

如果您只想更新現有文檔的某些字段,您需要使用$set或者將匹配的文檔替換爲您的更新對象(_id除外)。

所以做這樣的事情,而不是:

db.collection('userlist').update(
    { username:req.body.username}, 
    { $set: { 
     location:req.body.location, 
     email:req.body.email 
    }}, 
    { upsert: false }, 
    function(err, success) { 
     if(err) 
     console.log(err); 
     else 
     console.log(success); 
    } 
);