我正在开发一个具有朋友列表功能的快速webapp,该列表是一个数组,它是数据库中用户记录的一部分。我要做的是设置一个路由,将路由参数中的用户添加到登录用户的好友列表数组中,并更新数据库。
我的方法是通过collection.find()查询(有效)获取好友列表文档,通过javascript修改它并在回调函数中更新数据库。
修改部分是导致我出现问题的原因,因为mongodb查询不会返回json,而是返回mongodb查询对象。我不知道如何解析它们。如何只从该文档中获取要编辑的值?
router.get('/users/:specifiedUser/addfriend', function(req, res){
var currentUser = req.user.username;
var specifiedUser = req.params.specifiedUser;
var db = req.db;
var collection = db.get('usercollection');
var friendsList = [];
collection.find({ username : currentUser },{ friendsList : 1 }, function (err, result){
//TODO: convert result values to friendsList array, append specifiedUser to the array that is then updated in the callback
collection.update({username : currentUser },{friendsList : friendsList }, function (err) {
if (err) {
// return error if it fails
console.log(err.message);
return res.render('index', { error : err.message });
};
});
if (err) {
// return error if it fails
console.log(err.message);
return res.render('index', { error : err.message });
};
});
});