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

456
Vistas
Cómo realizar el adelanto y el retraso en MongoDB

Estoy usando STudio 3T y tengo una consulta como esta:

 select [Dashbo],lead([Dashbo]) over(order by [Entered Date]) from ATest_prevback;

Esto me está dando un error. ¿Cómo realizar esto en MongoDB? ¿Puede alguien darme un ejemplo?

Gracias, adi

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Desafortunadamente, no es posible.

Solución alternativa: cree una vista materializada con datos calculados.

Ejecutar en MongoDB Shell:


 var prev = null; db.ATest_prevback.find({}).sort({field:1}).forEach(function(curr){ db.materialized_view.insert({curr:curr.field, prev:(prev ? prev.field : 0)}) prev = curr; })

Ejecute consultas de lead y lag "falsas":

 db.materialized_view.aggregate([ {$match:{$expr:{$eq:["$curr", "$prev"]}}} ])
over 4 years ago · Santiago Trujillo Denunciar

0

A partir de MongoDB v5.0+, se puede hacer usando $shift en $setWindowFields .

 db.collection.aggregate([ { "$setWindowFields": { "partitionBy": null, "sortBy": { "entered_date": 1 }, "output": { lag: { $shift: { output: "$Dashbo", by: -1, default: "Not available" } }, lead: { $shift: { output: "$Dashbo", by: 1, default: "Not available" } } } } } ])

Aquí está el parque infantil de Mongo para su referencia.

over 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