Nodejs/mongoose。ドキュメントを作成するにはどのアプローチが適していますか? 質問する

Nodejs/mongoose。ドキュメントを作成するにはどのアプローチが適していますか? 質問する

私は、mongoose を使用するときに、nodejs で新しいドキュメントを作成するための 2 つの方法を見つけました。

初め:

var instance = new MyModel();
instance.key = 'hello';
instance.save(function (err) {
  //
});

2番

MyModel.create({key: 'hello'}, function (err) {
  //
});

何か違いはありますか?

ベストアンサー1

はい、主な違いは、保存する前に計算を実行できるか、または新しいモデルを構築しているときに表示される情報に反応して計算を実行できるかです。最も一般的な例は、モデルを保存する前にそのモデルが有効であることを確認することです。その他の例としては、保存する前に不足している関係を作成したり、他の属性に基づいてオンザフライで計算する必要がある値を作成したり、存在する必要があるがデータベースに保存されない可能性があるモデル (中止されたトランザクション) を作成したりすることが挙げられます。

実行できることの基本的な例として、次のことが挙げられます。

var instance = new MyModel();

// Validating
assert(!instance.errors.length);

// Attributes dependent on other fields
instance.foo = (instance.bar) ? 'bar' : 'foo';

// Create missing associations
AuthorModel.find({ name: 'Johnny McAwesome' }, function (err, docs) {
  if (!docs.length) {
     // ... Create the missing object
  }
});

// Ditch the model on abort without hitting the database.
if(abort) {
  delete instance;
}

instance.save(function (err) {
  //
});

おすすめ記事