Javascript 创建后如何在mongoose模式中填充数组?

Javascript 创建后如何在mongoose模式中填充数组?,javascript,node.js,mongodb,mongoose,mean,Javascript,Node.js,Mongodb,Mongoose,Mean,我有以下两种模式: var UserSchema = new Schema({ provider: String, username: String, ... categories: [{type: Schema.Types.ObjectId, ref: 'Category'}], ... }); export default mongoose.model('User', UserSchema); 及 现在,每当我创建一个新用户时,我想用所有现有的类别自动填充他的类别。取

我有以下两种模式:

var UserSchema = new Schema({
  provider: String,
  username: String,
  ...
  categories: [{type: Schema.Types.ObjectId, ref: 'Category'}],
  ...
});

export default mongoose.model('User', UserSchema);

现在,每当我创建一个新用户时,我想用所有现有的类别自动填充他的类别。取决于他的年龄,他可能不会被分配到成人类别

我该怎么做?我是这样试的:

var newUser = new User(req.body);
  ...
  newUser.saveAsync()
    .spread(function(user) {


  Category.findAsync({}, '_id', function(err, categories) {
    if (!err){

      var size = categories.length;

      for (var i = 0; i < size; i++) {
        user.categories.push(categories[i]._id);
      }

    } else {throw err;}
  });

  ...

 })
 .catch(validationError(res));
var newUser=新用户(请求正文);
...
newUser.saveAsync()
.排列(功能(用户){
Category.findAsync({},'.\u id',函数(err,categories){
如果(!err){
变量大小=categories.length;
对于(变量i=0;i
但这似乎不起作用

希望您能帮助我。

看看这是否有帮助:

var newUser = new User(req.body);
...
newUser.saveAsync()
.spread(function(user) {
  Category.find({}, {'_id': 1}, function(err, categories) {
    if (!err){
      /*var size = categories.length;
      for (var i = 0; i < size; i++) {
        user.categories.push(categories[i]._id);
      }*/
      user.categories = [];
      user.categories = categories;
    } else {throw err;}
  });
...
})
.catch(validationError(res));
var newUser=新用户(请求正文);
...
newUser.saveAsync()
.排列(功能(用户){
Category.find({},{''uid':1},函数(err,categories){
如果(!err){
/*变量大小=categories.length;
对于(变量i=0;i
var newUser = new User(req.body);
...
newUser.saveAsync()
.spread(function(user) {
  Category.find({}, {'_id': 1}, function(err, categories) {
    if (!err){
      /*var size = categories.length;
      for (var i = 0; i < size; i++) {
        user.categories.push(categories[i]._id);
      }*/
      user.categories = [];
      user.categories = categories;
    } else {throw err;}
  });
...
})
.catch(validationError(res));