【发布时间】:2013-09-27 06:47:11
【问题描述】:
我想在删除所有内容后在数据库中重新创建模型。
Mongoose(或 Mongo 本身)实际上是重新创建文档而不是索引。那么有没有办法重置 Mongoose 以便它可以像第一次运行一样重新创建索引?
我使用 dropDatabase 的原因是因为它在测试时看起来更容易。否则我将不得不一一删除所有集合。
【问题讨论】:
标签: javascript node.js mongodb mongoose
我想在删除所有内容后在数据库中重新创建模型。
Mongoose(或 Mongo 本身)实际上是重新创建文档而不是索引。那么有没有办法重置 Mongoose 以便它可以像第一次运行一样重新创建索引?
我使用 dropDatabase 的原因是因为它在测试时看起来更容易。否则我将不得不一一删除所有集合。
【问题讨论】:
标签: javascript node.js mongodb mongoose
虽然不建议用于生产,但根据您的场景,您可以将 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 (docs) 上的ensureIndex:
Animal.ensureIndexes(function (err) {
if (err) return handleError(err);
});
【讨论】: