触发器限制
在设计工具和客户端如何通过触发器与MongoDB交互时,需要记住几条准则。 在决定如何构造查询、选择要使用的CRUD和聚合操作以及确定如何处理并发工作负载时,请记住本指导。
聚合(Aggregation)
触发器支持 系统函数 中的所有 聚合管道阶段 $currentOp
$indexStats
,但 和 除外。
出于安全考虑,仅在用户函数中支持一部分聚合管道阶段。
有关可用的管道阶段及其允许的函数上下文的列表,请参阅聚合。
批量加载
当数据批处理加载到MongoDB Atlas时,当Atlas处理更改时,您可能会发现数据在设备上显示有延迟。
时间序列集合
无服务器实例
联合数据库实例
Change Streams
Atlas根据集群的大小,限制针对给定集群打开的 变更流 的总数。 下表列出了每个集群大小的限制:
集群大小 | 最大变更流数 |
---|---|
免费套餐 ( M0 ) | 5 |
共享集群 ( M2 /M5 ) | 10 |
小型专用集群 ( M10 /M20 ) | 100 |
标准集群 ( M30 /M40 ) | 1000 |
标准集群 ( M50 — M90 ) | 1000 |
高性能集群 ( M100+ ) | 1000 |
注意
Atlas在与数据库trigger关联的每个集合上打开单个变更流。
数据库命令
通过传输协议连接到MongoDB 集群时,您可以调用有限的一部分数据库命令。 有关支持的命令列表,请参阅数据库命令。
注意
App Services不支持Atlas Function中的任何数据库命令。
MongoDB 版本要求
您可以访问权限CRUD MongoDB版本的大部分3.6 和聚合功能。但是,触发器并不支持标准工具和客户端提供的所有操作和功能。 有关通过触发器连接到MongoDB时可用的特定MongoDB操作的列表,请参阅CRUD改查和聚合API参考。
查询选项
查询结果
通过触发器执行的MongoDB查询最多可以返回50个、 000文档。 如果需要返回更多文档,请考虑对查询进行分页。
请求流量
Atlas将请求流量限制为以下默认值:
10、000 并发请求。任何超出并发请求限制的请求都会收到HTTP响应状态代码429 - 请求过多 。
Atlas可以处理数倍于上述限制的请求。 但是,这些限制是为了确保应用程序以负责任的方式扩展,并防止 DOS 攻击和意外的计费。
您可以通过提交支持票证来请求更高的限制。
连接池化
Atlas使用连接池化来减少在请求和trigger执行之间频繁打开和关闭连接所产生的开销。 连接根据需要打开。 连接池化取决于多个因素:
集群层。集群层越高,池中可用的连接越多。
部署模式。全球部署在每个地区使用多台服务器,因此整体上具有更大的连接池。
服务。每个服务都有一个独立的连接池,因此应用中服务的数量不会影响可用连接的数量。