Node JS Moongose update 2 documents

i'm new to async programming and nodejs with mongodb. I'm trying to make standart system with users, posts and likes. Post document has favoriteCount field, user document has favorites array, which contains id's of liked posts. I wrote this code, which updates user info and post info after like/dislike. Is this approach is Ok? Any corrections and explanations? Thanks in advance.

exports.addFavorite = function(req, res) {
    var postId = req.body.id;
    if (req.user) {
        User.findOne({_id: req.user.id}, function(err, user) {
            if (err) {

            }
            if (user) {
                var found = false,
                    action = '';

                if (_.findWhere(user.favorites, {id: postId})) {
                    found = true;
                }

                if (found) {
                    user.favorites = _.filter(user.favorites, function(item) {
                        return item.id != postId; 
                    });
                } else {
                    user.favorites.push({id: postId});
                }

                var incrDecr = found ? -1 : 1;

                async.parallel([
                    function postUpdate(callback) {
                        Post.findOneAndUpdate({_id: postId}, {$inc: {favoriteCount: incrDecr}}, {}, function(err, post) {
                            if (err) {
                                callback(err);
                                return;
                            }
                            if (post) {
                                callback(null, post);
                            }
                        });                     
                    },
                    function userUpdate(callback) {
                        user.save(function(err, user) {
                            if (err) {
                                callback(err);
                                return;
                            }
                            if (user) {
                                callback(null, user);
                            }
                        });
                    }
                ], function(err, results) {
                    return res.json({success: 1, action: (found ? 'remove' : 'add')});
                });
            }
        });
    }
}