我有以下两种模式:
var UserSchema = new Schema({
provider: String,
username: String,
...
categories: [{type: Schema.Types.ObjectId, ref: 'Category'}],
...
});
export default mongoose.model('User', UserSchema);
和
var CategorySchema = new mongoose.Schema({
name: String,
description: String,
adultOnly: { type: Boolean, default: false },
...
});
export default mongoose.model('Category', CategorySchema);
现在每当我创建一个新用户时,我都希望使用所有现有类别自动填充他的类别。根据他的年龄,他可能不会被分配到成年人的类别。
我该怎么做?我这样试过:
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));
但这似乎不起作用。
希望你能帮助我。
答案 0 :(得分:0)
看看这是否有帮助:
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));