2017-03-01 14 views
0

に1つの配列要素を移動マングース?これは、現在ログインしているユーザーのスキーマで行われます。これは私が現在pendingFriends配列に友人を置くために持っているルートです:ノードは、私は現在、以下のように見えるUserSchemaを持っている別の配列

app.post("/addFriend", function(req, res) { 
var conditions = { 
    username: req.body.globalUserName, 
    'pendingFriends._id': {$ne: req.user._id}, 
    'friends._id': {$ne: req.user._id} 
} 
var update = { 
    $addToSet: {pendingFriends: { _id: req.user._id, username: req.user.username, language: req.user.language, profilePicture: req.user.profilePicture}} 
} 

User.findOneAndUpdate(conditions, update, function(error, doc) { 
    if(error) { 
     console.log(currentTime + " - FRIEND_REQUEST_SEND_ERROR: '" + req.user.username + "' TRIED TO SEND A FRIEND REQUEST TO '" + req.body.globalUserName + "'"); 
    } 
    else { 
     console.log(currentTime + " - FRIEND_REQUEST_SENT: '" + req.user.username + "' SENT A FRIEND REQUEST TO '" + req.body.globalUserName + "'"); 
    } 
    res.redirect("/talk"); 
}); 

});

答えて

0

私は、次のコードは、質問で述べたように

var conditions = { 
username: req.body.globalUserName, 
'pendingFriends._id': {$eq: req.user._id}, 
'friends._id': {$ne: req.user._id} 
} 
var update = { 
    $pop: {pendingFriends: { _id: req.user._id, username: req.user.username, language: req.user.language, profilePicture: req.user.profilePicture}}, 
    $addToSet: {friends: { _id: req.user._id, username: req.user.username, language: req.user.language, profilePicture: req.user.profilePicture}} 
} 

がfindandupdateクエリのためにこれをで使用するのに役立つと思います。

関連する問題