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

189
Vistas
¿Qué es un objeto de consulta Mongoose? ¿Es una promesa?

Los modelos Mongoose proporcionan varias funciones auxiliares estáticas para las operaciones CRUD. Cada una de estas funciones devuelve un objeto Query mangosta.

Por ejemplo :

 let query = Model.find();

Esto devuelve un objeto <Query> que se puede encadenar.

 async function() => { let newQuery = query.where("key").equals("value"); let result = await newQuery; }

P1• ¿Qué es exactamente un objeto de consulta devuelto por Model.find() ?

P2• ¿Cómo funciona el encadenamiento?

¿Son los objetos <Query> como promesa ya que estoy usando funciones asincrónicas?

Por favor, vincule cualquier tipo de documentos que puedan solucionar mi problema. Soy relativamente nuevo en esto, así que si mi pregunta no tiene sentido, corríjame :-(

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para preguntas como estas, es mejor consultar las definiciones de TypeScript para el módulo. query.d.ts en particular contiene las respuestas.

P1• ¿Qué es exactamente un objeto de consulta devuelto por Model.find()?

La firma de find tiene el siguiente aspecto:

 find<ResultDoc = HydratedDocument<T, TMethodsAndOverrides, TVirtuals>>( callback?: Callback<ResultDoc[]> | undefined ): QueryWithHelpers<Array<ResultDoc>, ResultDoc, TQueryHelpers, T>;

Entonces, el tipo de retorno es QueryWithHelpers con algunos genéricos, que se resuelve en Query con algunos genéricos. Ahora, para ver su definición, es bastante larga. Es un objeto normal con las siguientes implementaciones:

  • interfaces para llamar a exec() , find() , findOne , etc. Estos son sus métodos de encadenamiento (Q2).
  • Implementa un iterador asíncrono: [Symbol.asyncIterator](): AsyncIterableIterator<DocType>; que te permite usar cosas como for (let .. of ..) en él
  • Implementa una interfaz para que funcione como una promesa: then: Promise<ResultType>['then']; . Esto le permite hacer find(...).then(...) , que es lo mismo que hace la palabra clave await , lo que hace que funcione también.
about 4 years ago · Santiago Trujillo 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