Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
problema al obtener datos en mongodb, obtener por ID de categoría

Estoy tratando de filtrar mis mascotas por categoría, tengo el siguiente modelo de mascotas:

 const Pet = mongoose.model( 'Pet', new Schema({ name: { type: String, required: true, }, age: { type: Number, required: true, }, description: { type: String, }, weight: { type: Number, required: true, }, color: { type: String, required: true, }, images: { type: Array, required: true, }, available: { type: Boolean, }, category: Object, user: Object, adopter: Object, }, { timestamps: true }), ); module.exports = Pet;

cuando trato de obtener los datos a través del cartero, devuelve una matriz vacía como respuesta.

mi codigo para filtrar por categoria:

 static async getByCategory(req, res) { const id = req.params.id; // check if id is valid if (!ObjectId.isValid(id)) { res.status(422).json({ msg: 'Invalid ID' }); return; } const pets = await Pet.find({ 'category._id': id }).sort('-createdAt'); if (!pets) { res.status(404).json({ msg: 'Pets not found!' }); return; } res.status(200).json({ pets }); }

es la primera vez que uso mongodb, así que no estoy seguro de qué está mal.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿Podría verificar que su MongoDB tenga un campo category._id ?

about 4 years ago · Juan Pablo Isaza Denunciar

0

La id que se pasa desde el lado del cliente es una cadena y la que se guarda en la base de datos es ObjectId . Convierta la cadena a Mongoose ObjectId antes Pet.find() .

 const id = mongoose.Types.ObjectId(req.params.id); const pets = await Pet.find({ 'category._id': id }).sort('-createdAt');

No olvides importar 'mangoose'.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda