2

のドキュメントを見ると、MongooseJS次のMongoDB/Node.jsようにオブジェクトにインデックスを指定できるようです。

var MyModelSchema = new Schema({ name: String, index: true });
var MyModel = mongoose.model('MyModel', MyModelSchema);
MyModel.on('index', function()
{
    doStuff();
});

ドキュメントによると、スキーマでオプションが明示的にfalseに設定されていensureIndex()ない限り、Mongooseは起動時に呼び出します。"autoIndex"これが完了すると、'index'イベントがモデルで発行され、コールバックがトリガーされます。

私の理解では、これにより、モデルのユーザーは、モデルを使用する前にすべてのインデックス作成が完了していることを確認できます。

app.configureこれをどのように行うことができるかはわかりませんが、を介してこれを行うという言及を聞いたと思います。エクスポートされたモデルに依存するアプリケーションの他の部分の前に、このインデックス作成操作の完了を保証する別の方法があるのではないでしょうか。

これはどのように適切に使用する必要がありますか?

4

2 に答える 2

4

モデルの'index'イベントは、モデルのensureIndex呼び出しで発生したエラーを警告するためにあります。イベントが発生するまで、モデルの使用を遅らせる必要はありません。それはかなり厄介になるでしょう。

于 2013-01-15T16:38:13.657 に答える
1

プロジェクトのマングース設定を構成するために使用される領域に以下を追加すると便利であることがわかりました。

let mongoose = require('mongoose');

mongoose.Model.on('index', function(err) {
  if (err) logger.error(err);
});
于 2016-09-01T18:07:14.170 に答える