3

我正在完成使用此代码的 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 已经存在于不推送的朋友请求数组中。我试图使用 $exist: 但我无法让它工作。

4

1 回答 1

13

使用$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});
                    }
            });
};
于 2013-07-19T18:28:02.873 回答