0

これはアーキテクチャの問題です。私はこのようなモデルを持っています:

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」を実行していないので、含めるのもいいと思います...どちらの方法でも設計のベストプラクティスを破っていますか?

4

2 に答える 2