Tengo una aplicación de blog que usa MongoDB/Mongoose en un servidor Express . Estoy usando Mongoose-Unique-Validator .
Cada documento de usuario tiene un campo de posts que es una matriz que consta de ID de publicaciones. Cuando un usuario hace una nueva publicación, intento actualizar su documento para agregar la publicación a su matriz de publicaciones:
let user = await User.findById("61b45baa09caf8ee462248df") await post.save().then(savedPost => { user.posts = user.posts.concat(savedPost.id) user.save() })Cuando se ejecuta este código, se genera el siguiente error:
errors: { _id: ValidatorError: Error, expected `_id` to be unique. Value: `61b45baa09caf8ee462248df` at validate (C:\Users\avery\Desktop\blog\backend\node_modules\mongoose\lib\schematype.js:1277:13) at C:\Users\avery\Desktop\blog\backend\node_modules\mongoose\lib\schematype.js:1252:24 at processTicksAndRejections (node:internal/process/task_queues:96:5) { properties: [Object], kind: 'unique', path: '_id', value: new ObjectId("61b45baa09caf8ee462248df"), reason: undefined, [Symbol(mongoose:validatorError)]: true } }, _message: 'User validation failed' Mi userSchema de usuario es el siguiente::
const mongoose = require('mongoose') const uniqueValidator = require('mongoose-unique-validator') const userSchema = mongoose.Schema({ username: { type: String, unique: true }, passwordHash: String, posts: [ { type: mongoose.Schema.Types.ObjectId, ref:'Post' } ] }) userSchema.plugin(uniqueValidator) userSchema.set('toJSON', { transform: (document, returnedObject) => { returnedObject.id = returnedObject._id.toString() delete returnedObject._id delete returnedObject.__v delete returnedObject.passwordHash } }) const User = mongoose.model('User', userSchema) module.exports = User¿Cuál es el problema aquí?
Este problema ya se menciona en su repositorio de github. esto puede ayudar Mencionado en Github oficial de Plugin