对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

触发器限制

在设计工具和客户端如何通过触发器与MongoDB交互时,需要记住几条准则。 在决定如何构造查询、选择要使用的CRUD和聚合操作以及确定如何处理并发工作负载时,请记住本指导。

Triggers support all aggregation pipeline stages in system functions except for $currentOp and $indexStats.

出于安全考虑,仅在用户函数中支持一部分聚合管道阶段。

有关可用的管道阶段及其允许的函数上下文的列表,请参阅聚合。

当数据批处理加载到MongoDB Atlas时,当Atlas处理更改时,您可能会发现数据在设备上显示有延迟。

You cannot define Database Triggers on a time series collections. This is because time series collections do not yet support change streams.

无法在 Flex 集群上定义数据库触发器。这是因为 Flex 集群不支持变更流。

You cannot define Database Triggers on a federated database instance because federated database instances don't support change streams.

Atlas根据集群的大小,限制针对给定集群打开的 变更流 的总数。 下表列出了每个集群大小的限制:

集群大小
最大变更流数

免费集群

5

弹性集群

10

小型专用集群 (M10/M20)

100

标准集群 (M30/M40)

1000

标准集群 (M50M90)

1000

高性能集群 (M100+)

1000

注意

Atlas在与数据库trigger关联的每个集合上打开单个变更流。

通过传输协议连接到MongoDB 集群时,您可以调用有限的一部分数据库命令。 有关支持的命令列表,请参阅数据库命令。

注意

App Services支持Atlas Function中的任何数据库命令。

您可以访问MongoDB 3.6 版本的大部分CRUD和聚合功能。但是,触发并不支持标准工具和客户端提供的所有操作和功能。通过触发器连接到 MongoDB 时可用的特定 MongoDB 操作列表,请参阅CRUD 和聚合 API 参考。

触发器支持系统函数中的所有查询选项。 有关通过触发器连接到MongoDB时可用的特定选项的列表,请参阅查询选项。

通过触发器执行的MongoDB查询最多可以返回50个、 000文档。 如果需要返回更多文档,请考虑对查询进行分页。

Atlas将请求流量限制为以下默认值:

  • 10,000 并发请求。任何超出并发请求限制的请求都会收到HTTP响应状态代码429 - 请求过多。

Atlas可以处理数倍于上述限制的请求。 但是,这些限制是为了确保应用程序以负责任的方式扩展,并防止 DOS 攻击和意外的计费。

您可以提交支持工单以申请更高的限制。

Atlas使用连接池化来减少在请求和trigger执行之间频繁打开和关闭连接所产生的开销。 连接根据需要打开。 连接池化取决于多个因素:

  • 集群层。集群层越高,池中可用的连接越多。

  • 部署模式。全球部署在每个地区使用多台服务器,因此整体上具有更大的连接池。

  • 服务。每个服务都有一个独立的连接池,因此应用中服务的数量不会影响可用连接的数量。