这是一个架构问题。我有这样的模型:
var foo = new mongoose.Schema({
name: String,
bars: [{type: ObjectId, ref: 'Bar'}]
});
var FooModel = mongoose.model('Foo', foo);
var bar = new mongoose.Schema({
foobar: String
});
var BarModel = mongoose.model('Bar', bar);
然后我想实现一个这样的方便方法:
BarModel.methods.addFoo = function(foo) {
foo.bars = foo.bars || []; // Side note, is this something I should check here?
foo.bars.push(this.id);
// Here's the line I'm wondering about... Should I include the line below?
foo.save();
}
我看到的最大问题是,如果我确实包含了,foo.save()
那么我应该传入一个回调,addFoo
这样我就可以避免异步操作的问题。我认为这不是可取的。但我也认为包含它会很好,因为addFoo
在它被保存之前还没有真正“添加Foo”......我是否打破了任何设计最佳实践?