• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

163
Vistas
Mongoose devuelve 10 resultados ordenados por fecha para cada identificación de usuario en una matriz de identificaciones

digamos que tenemos una matriz de ID de usuario:

 "ids": [ "623d71c628820d09797be558", "62419d6477775214de099838", "62419d7877775214de099845", "62419d8877775214de09984c" ]

y queremos devolver los primeros 10 documentos de cada identificación ordenados por fecha. Sé que podemos hacer:

 const docs = await Model.find({ id: { $in: ids } }) .sort("date") .limit(10);

que devuelve 10 documentos ordenados por fecha, pero no para cada usuario, ¿cómo podría devolver 10 para cada uno en la matriz?

** EDITAR **

Aquí hay un documento de ejemplo de la colección de balance :

 { "_id": "624a19a0b1cf7d69a5193737", "user": { "name": "john", "id": "623d71c628820d09797be558" }, "description": "chips", "amount": 2, "type": "expense", "date": "2022-04-03T22:03:12.774Z", "__v": 0 }

y un documento de "usuario":

 { "_id": "623d71c628820d09797be558", "name": "john", "__v": 0 }
about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esta es una forma de hacerlo mediante una canalización de agregación.

 db.collection.aggregate([ { "$match": { "id": { "$in": [ "623d71c628820d09797be558", "62419d6477775214de099838", "62419d7877775214de099845", "62419d8877775214de09984c" ] } } }, { "$sort": { "date": 1 } }, { "$group": { "_id": "$id", "docs": { "$push": "$$CURRENT" } } }, { "$project": { "_id": 0, "id": "$_id", "docs": { "$slice": [ "$docs", 10 ] } } } ])

Pruébalo en mongoplayground.net .

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda