Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文档中的NodeJS和MongoDB更新数组_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 文档中的NodeJS和MongoDB更新数组

Javascript 文档中的NodeJS和MongoDB更新数组,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有以下代码: exports.addUser = function(req, res, next) { req.assert('email', 'Email is not valid').isEmail(); req.assert('password', 'Password must be at least 4 characters long').len(4); req.assert('confirmPassword', 'Passwords do not match').equa

我有以下代码:

exports.addUser = function(req, res, next) {
  req.assert('email', 'Email is not valid').isEmail();
  req.assert('password', 'Password must be at least 4 characters long').len(4);
  req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password);
  req.assert('firstName','First Name is empty').notEmpty();
  req.assert('lastName','Last Name is empty').notEmpty();

  var errors = req.validationErrors();

  if (errors) {
    req.flash('errors', errors);
    return res.redirect('/user/account-users/add');
  }

  var user = new User({    
    email: req.body.email,
    password: req.body.password,    
    profile: {
      role: req.body.role,
      firstName: req.body.firstName,
      lastName: req.body.lastName,
      screenName: req.body.screenName,
      addressOne: req.body.addressOne,
      addressTwo: req.body.addressTwo,
      country: req.body.country,
      stateProvince: req.body.stateProvince,
      postalCode: req.body.postalCode
    }
  });

  User.findOne({ email: req.body.email }, function(err, existingUser) {
    if (existingUser) {
      req.flash('errors', { msg: 'Account with that email address already exists.' });
      return res.redirect('/user/account-users/add');
    }
    user.save(function(err) {
      if (err) return next(err);

      Account.findOne( { users: { $elemMatch: { _id: req.user._id } } }, function(err, account) {
        var accountId = account._id;
        if(err) req.flash('errors', err);
        Account.update( { _id: accountId }, { users: { $push: user } }, function(err, result){
          console.log(result)
          if (err) return next(err);
          res.redirect('/user/account-users');
        });
      }); 
    });
  });
};
当前,当用户向其帐户添加其他用户时,此代码将清除添加用户的帐户文档


如何正确地将新创建的用户添加到当前用户所属的帐户文档中?

我看不到正在创建[user]的位置。第一行中的匿名回调函数返回[existingUser]。看起来您正试图将此[user]文档推送到Accounts集合中文档中的users数组中。@MichaelBlankenship我有一个用户,我只是不把它放在注释中。现在我已经在第一篇文章中添加了完整的请求inf。如果是这样的话,那么在这一部分中[Account.update{{u id:accountId},{users:{$push:user},]。。。我猜您已经选择更新整个文档,而不仅仅是要插入到该数组中的部分。您可能需要做的是查找同一文档,保存其信息,修改保存的信息,然后使用它更新存储的文档。