2013-07-19 50 views
2

我有一個POST正在做使用此代碼:如何在mongodb中推送新文檔,但僅限於不存在的文檔?

exports.addContactPost = function(req, res, err) { 
    User.findByIdAndUpdate(req.signedCookies.userid, { 
       $push: {friendRequest: req.body.friendRequest} 
      }, function(err) { 
       if(err) { 
        console.log(err); 
        return console.log('error'); 
       } else {    
        console.log('postsuccess'); 
        res.json({response: true}); 
        } 
      }); 
}; 

我如何可以採取$推:代碼和狀態,如果ID friendRequest的數組中已經存在不推線。我試圖使用$存在:但我無法得到它的工作。

回答

11

使用$addToSet運算符。它確保如果不在數組中,則會添加該值。

基本上是:

exports.addContactPost = function(req, res, err) { 
    User.findByIdAndUpdate(req.signedCookies.userid, { 
       $addToSet: {friendRequest: req.body.friendRequest} 
      }, function(err) { 
       if(err) { 
        console.log(err); 
        return console.log('error'); 
       } else {    
        console.log('postsuccess'); 
        res.json({response: true}); 
        } 
      }); 
}; 
+0

的感謝!這樣可行 – Lion789

相關問題