A simple plugin that enforces unique fields within documents by dropping existing duplications.
npm install --save mongoose-plugin-drop-duplicates
A special key dropDups
could be used to identify the fields you wish to be unique.
const Schema = mongoose.Schema;
const schema = new Schema({
email: {
type: String,
dropDups: true
}
});
schema.plugin(require('mongoose-plugin-drop-duplicates'));
const Subscription = mongoose.model('Subscription', schema);
...
new Subscription({email: 'abc@example.com'}).save(); // successful
...
new Subscription({email: 'abc@example.com'}).save(); // also successful, but previous document is removed
...
Subscription.find({}) // only got one record with abc@example.com
Jason Yu
ISC