Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

78
Views
Mongoose cambia automáticamente el tipo de valor

En mongoose.model , he elegido que el tipo de name sea una string y el tipo de age sea un number , pero cuando ingreso un número como valor de nombre, no me da error y sucede lo mismo cuando uso algo como '18' como el valor de la edad.

Aquí está el código:

 const User = mongoose.model('User', { name: { type: String }, age: { type: Number } }); const me = new User({ name: 12, age: '18' }); me.save().then(() => console.log(me)).catch(error => console.log(error));
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Mongoose convierte los valores al tipo correspondiente, si falla, se lanza un CastError , desde el documento :

Antes de ejecutar los validadores, Mongoose intenta forzar los valores al tipo correcto. Este proceso se denomina conversión del documento. Si la conversión falla para una ruta determinada, el objeto error.errors contendrá un objeto CastError .

Puede probar esto por age dada el valor 'aa' por ejemplo.

Si desea anular este comportamiento, puede utilizar una de las siguientes opciones:

  1. Deshabilitar la transmisión global: mongoose.Number.cast(false)
  2. Deshabilite la transmisión solo para una ruta determinada:
 age: { type: Number, cast: false // Disable casting just for this path },
  1. Utilice una función personalizada:
 age: { type: Number, cast: v => { return typeof v === 'number' && !isNaN(v) ? Number(v) : v; } // Override casting just for this path }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!