从mongodb查询结果追加到数组并更新数据库

时间:2016-09-08 09:24:57

标签: javascript mongodb

我正在开发一个具有朋友列表功能的快速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 });

  };

});
});

0 个答案:

没有答案