I’m trying to remove an index from my mongoDB collection in node.js application using mongoose. I tried using model.collection.dropIndex("username")
but it gives me an error UnhandledPromiseRejectionWarning: MongoError: index not found with name [username]
.
Here is my Schema
var mongoose = require("mongoose"), Schema = mongoose.Schema; var userTable = new Schema({ firstname: { type: String, required: true }, lastname: { type: String, required: true }, username: { type: String }, salt: { type: String }, passwordHash: { type: String }, email: { type: String, unique: true, required: true }, sessionToken: { type: String }, dateCreated: { type: String, default: new Date().toString() }, loginHistory: [String] }); module.exports = mongoose.model("userTable", userTable);
When I perform the query in mongo shell from the terminal using command db.usertable.find({})
, I can see that the results still have username
field. I also tried after removing the username
field from schema file, but even that didn’t help.
Thanks in advance.
Advertisement
Answer
This drops all the indexes of the collection except for the object id
db.collection.dropIndexs();
to delete a certain index
first type the command
db.collecction.getIndexes();
You will see something like above the in the red square is the index name .
db.collection.dropIndex( { "indexname": 1 } )