これはアーキテクチャの問題です。私はこのようなモデルを持っています:
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
しかし、保存されるまで実際に「addedFoo」を実行していないので、含めるのもいいと思います...どちらの方法でも設計のベストプラクティスを破っていますか?