0

データベース内のすべてを削除した後、データベース内のモデルを再作成したいと考えています。

Mongoose (または Mongo 自体) は、実際にはドキュメントを再作成しますが、インデックスは再作成しません。では、Mongoose をリセットして、初めて実行したかのようにインデックスを再作成する方法はありますか?

私が dropDatabase を使用している理由は、テスト中に簡単に見えるからです。そうしないと、すべてのコレクションを 1 つずつ削除する必要があります。

4

1 に答える 1

1

本番環境での使用はお勧めしませんが、シナリオによっては、indexプロパティをフィールド定義に追加して、インデックスを作成するように指定できます。

var animalSchema = new Schema({
  name: String,
  type: String,
  tags: { type: [String], index: true } // field level
});

animalSchema.index({ name: 1, type: -1 }); // schema level

または、

var s = new Schema({ name: { type: String, sparse: true })
Schema.path('name').index({ sparse: true });

ensureIndexまたは、Modeldocs )を呼び出すことができます:

Animal.ensureIndexes(function (err) {
    if (err) return handleError(err);
});
于 2013-09-22T10:41:00.963 に答える