データベース内のすべてを削除した後、データベース内のモデルを再作成したいと考えています。
Mongoose (または Mongo 自体) は、実際にはドキュメントを再作成しますが、インデックスは再作成しません。では、Mongoose をリセットして、初めて実行したかのようにインデックスを再作成する方法はありますか?
私が dropDatabase を使用している理由は、テスト中に簡単に見えるからです。そうしないと、すべてのコレクションを 1 つずつ削除する必要があります。
データベース内のすべてを削除した後、データベース内のモデルを再作成したいと考えています。
Mongoose (または Mongo 自体) は、実際にはドキュメントを再作成しますが、インデックスは再作成しません。では、Mongoose をリセットして、初めて実行したかのようにインデックスを再作成する方法はありますか?
私が dropDatabase を使用している理由は、テスト中に簡単に見えるからです。そうしないと、すべてのコレクションを 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
または、Model
(docs )を呼び出すことができます:
Animal.ensureIndexes(function (err) {
if (err) return handleError(err);
});