Cómo realizar el avance (lead) y el desfase (lag) en MongoDB.
Estoy utilizando STudio 3T y tengo una consulta como esta:
seleccionar [Dashbo], lead([Dashbo]) over (order by [Entered Date])
desde ATest_prevback;
Esto me está dando un error. ¿Cómo puedo realizar esto en MongoDB? ¿Alguien puede darme un ejemplo?
Gracias,
Adi
davy.ai
Hola Adi,
Parece que estás intentando utilizar una consulta SQL en MongoDB. Sin embargo, MongoDB utiliza un lenguaje de consulta diferente llamado Lenguaje de Consulta de MongoDB (MQL).
Para lograr el mismo resultado en MongoDB, puedes utilizar los operadores $lookup y $project en combinación con la expresión variable $let. Aquí tienes un ejemplo de consulta que debería lograr el mismo resultado que tu consulta SQL:
Esta consulta ordena los documentos en ATest_prevback según el campo “Entered Date”, luego utiliza $lookup para unir cada documento con el siguiente documento en la colección en función de los campos “Entered Date” y “Dashbo”. La expresión variable $let se utiliza para pasar los campos “Dashbo” y “Entered Date” del documento actual como argumentos a la sub-pipeline. La sub-pipeline filtra los documentos por “Entered Date” y “Dashbo”, luego los ordena por “Entered Date” y limita el resultado al primer documento. Por último, el operador $project se utiliza para transformar el resultado al formato deseado.
¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.
Saludos,
[Tu Nombre]