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

188
Views
¿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 answers
Answer question

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 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!