gpt4 book ai didi

node.js - Mongoose 没有重新创建索引集合被删除

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:59 25 4
gpt4 key购买 nike

我知道我应该removeAll文档而不是删除集合。但是为什么 mongoose 在删除集合后不重新创建索引呢?

我有一个架构,其中一个字段设置了 unique:true 。索引是在我启动服务器时创建的。但是,如果我删除集合,并且出现新记录,则会重新创建集合并插入记录。但是,不会再次创建唯一字段的索引。

为什么会这样呢?我如何要求它重新创建索引?

最佳答案

它与独特无关。如果删除 mongodb 中的索引,则必须重新启动 Node 。

When your application starts up, Mongoose automatically calls ensureIndex for each defined index in your schema. Mongoose will call ensureIndex for each index sequentially, and emit an 'index' event on the model when all the ensureIndex calls succeeded or when there was an error. While nice for development, it is recommended this behavior be disabled in production since index creation can cause a significant performance impact.

尽管如此,在开发模式下,您可以使用以下方法在方法中重新创建索引(例如与路由或事件相关的方法):

(Mongodb > 3.0) db.collection.createIndex({})

(Mongodb < 3.0) db.collection.ensureIndex({})

对于 Mongoose 来说,它看起来像这样:

Model.ensureIndexes(function (err) {
if (err) {
return res.end(err);
}
});

关于node.js - Mongoose 没有重新创建索引集合被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38308011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com