使用猫鼬重新创建模型

Recreate models using Mongoose

本文关键字:创建 模型 新创建      更新时间:2023-09-26

我想在将所有内容放入数据库后在数据库中重新创建模型。

猫鼬(或Mongo本身)实际上重新创建文档而不是索引。那么有没有办法重置猫鼬,以便它可以像第一次运行一样重新创建索引呢?

我之所以使用 dropDatabase,是因为它在测试时似乎更容易。否则,我将不得不一一删除所有集合。

虽然不建议用于生产用途,但根据您的方案,可以将 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 });

或者,您可以在Model(文档)上呼叫ensureIndex

Animal.ensureIndexes(function (err) {
    if (err) return handleError(err);
});