mongodb - 如何在 MongoDB 中执行超前和滞后

标签 mongodb mongodb-query aggregation-framework pymongo studio3t

我正在使用 STudio 3T,我有这样的查询:

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

这给我带来了错误。如何在 MongoDB 中执行此操作?有人可以给我举个例子吗?

谢谢, 阿迪

最佳答案

从 MongoDB v5.0+ 开始,可以使用 $shift 来完成在 $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"
          }
        }
      }
    }
  }
])

这是 Mongo playground供大家引用。

关于mongodb - 如何在 MongoDB 中执行超前和滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70338503/

相关文章:

node.js - 通过添加到 MongoDB 中自己的值来更新嵌套数组的最后一项

mongodb - 按日、月、年获取不同的 ISO 日期

node.js - 如何根据数组字段的长度对文档进行排序

spring - GridFSDBFile 无法转换为 org.springframework.web.multipart.MultipartFile

c# - 如何使用 BsonClassMap 将 POCO 域对象属性映射为手册或 DBRef 引用?

javascript - MongoDB 双重插入和推送

mongodb - 如何对mongo中的后续元素进行分组?

MongoDB - 使用多个参数从多个集合中搜索

node.js - 当数据库位于服务器文件夹之外时如何启动 Mongoose 连接?

java - 在 geojson 数据库中查找包含点 (x,y) 的多边形