如何使用 Mongoose 删除索引

Posted

技术标签:

【中文标题】如何使用 Mongoose 删除索引【英文标题】:How to drop index using Mongoose 【发布时间】:2016-03-30 18:23:18 【问题描述】:

猫鼬

Imagdata.dropIndexes(  "image_id": 1 , function(err)
         if(err)
             res.send("error");
        
        else
            res.send("success");
        
);

这是我用于删除字段“image_id”的索引的代码。当我尝试执行此函数时,它显示“TypeError:Imagdata.dropIndexes 不是函数”。如何解决这个问题...

【问题讨论】:

【参考方案1】:

您需要同步索引。查看此来源:https://mongoosejs.com/docs/api.html#model_Model.syncIndexes

const schema = new Schema( name:  type: String, unique: true  );
const Customer = mongoose.model('Customer', schema);
await Customer.collection.createIndex( age: 1 ); // Index is not in schema
// Will drop the 'age' index and create an index on `name`
await Customer.syncIndexes();

【讨论】:

【参考方案2】:

您需要使用模型的原始 collection 属性来访问底层 MongoDB API:

Imagdata.collection.dropIndex(...);

【讨论】:

以上是关于如何使用 Mongoose 删除索引的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 不删除 TTL 索引文档

MongoDB 不删除 TTL 索引文档

Mongoose 过期属性无法正常工作

通过将日期索引与当前日期进行比较来删除集合中的所有文档

Mongoose:如何在聚合中使用索引?

如何删除索引数据库?