Recibo el siguiente error cuando intento crear un documento en una colección.
MongoServerError: E11000 duplicate key error collection: stock-trading-system-db.trades index: user_id_1 dup key: { user_id: ObjectId('6266de71b90b594dab9037f3') }
Aquí está mi esquema:
const tradeSchema = new mongoose.Schema({ user_id: { type: Schema.Types.ObjectId, ref: 'User', required: true }, stock_id: { type: Schema.Types.ObjectId, ref: 'Stock', required: true }, stock_amount: { type: Number, required: true }, stock_value: { type: Number, required: true }, time_of_trade: { type: Date, required: true, default: new Date() }, trade_status: { type: String, enum: ['Approved', 'Declined', 'Pending'], required: true, default: 'Pending' } }, { collection: 'trades' })No quiero que user_id y stock_id sean únicos, solo quiero que verifique que esos ObjectID existen en sus respectivas colecciones antes de hacer el documento comercial. ¿Cómo logro esto?
Parece que una colección guarda el esquema definido en mongoose, e incluso si cambia el esquema, los valores únicos permanecerán iguales dentro de la colección.
Así que a pesar de que había quitado
unique: true;de mi esquema de mangosta, no lo había eliminado de la colección en mi base de datos.
Por lo tanto, la solución a esto es eliminar la colección y volver a crearla.