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


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