如何在mongodb中推送新文档,但只有在不存在的情况下才能推送新文档?

我有一个使用这个代码完成的POST:

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

我怎样才能采取的$ push:代码行,并指出,如果id已经存在于不推送的friendRequest数组中。 我试图使用$存在:但我不能得到它的工作。

使用$ 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}); } }); };