Preventing duplicate records in Mongoose Preventing duplicate records in Mongoose mongodb mongodb

Preventing duplicate records in Mongoose


It seems that you have done unique indexing(at schema level) after inserting some records in db.

please follow below steps to avoiding duplicates -

1) drop your db:

$ mongo

> use <db-name>;> db.dropDatabase();

2) Now do indexing at schema level or db level

 var EventSchema = new mongoose.Schema({      pkey: { type: String, unique: true },      device: { type: String, required: true },      name: { type: String, required: true },      owner: { type: String, required: true },      description: { type: String, required: true },    });

It will avoid duplicate record insertion with same pKey value.

and for ensuring the index, use command db.db_name.getIndexes().

I hope it helps.thank you


on mongoose.connect add {useCreateIndex: true}

It should look like this

mongoose.connect(uri, {useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true})


OK it looks like it has something to do with the index not having time to update before the second insert is posted (as there is only 9ms between them in my test suite).

  • need to do something about inserts waiting for "index"
  • needs to be API side as not all users of the API are web applications

I also found some other SO articles about constraints:

mongoose unique: true not work

Unique index not working with Mongoose / MongoDB

MongoDB/Mongoose unique constraint on Date field