CRUD 和聚合 API
Overview
本页列出了对 MongoDB 命令、操作符、选项和聚合阶段的 MongoDB 数据源支持。
有关如何通过函数读写 MongoDB 数据的信息,请参阅查询 MongoDB Atlas。
有关支持的功能和限制的更多信息,请参阅服务限制。
增删改查操作
查询运算符
对于在 用户函数 中运行的查询, Atlas App Services支持大多数 查询运算符 。但是,某些评估操作符以及所有地理空间和按位操作符只能在系统函数中使用。
比较操作符可用性
逻辑操作符可用性
数组操作符可用性
操作 | 用户函数 | 系统函数 |
---|---|---|
是 | 是 | |
是 | 是 | |
是 | 是 |
元素操作符可用性
评估操作符可用性
地理空间操作符可用性
操作 | 用户函数 | 系统函数 |
---|---|---|
No | 是 | |
No | 是 | |
No | 是 | |
No | 是 |
按位操作符可用情况
操作 | 用户函数 | 系统函数 |
---|---|---|
No | 是 | |
No | 是 | |
No | 是 | |
No | 是 |
更新操作符
Atlas App Services支持大多数在 用户函数 中运行的查询的 更新操作符 。但是,某些数组更新操作符只能在系统函数中使用。
现场更新操作符可用性
操作 | 用户函数 | 系统函数 |
---|---|---|
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 |
数组更新操作符可用性
操作 | 用户函数 | 系统函数 |
---|---|---|
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 | |
是 | 是 |
数组更新操作符修饰符可用性
按位更新操作符可用性
Operator | 用户函数 | 系统函数 |
---|---|---|
是 | 是 |
批量写入操作
App Services支持使用与 MongoDB Node.js驾驶员 相同的API进行批量写入操作。
提示
App Services 还提供了用于执行批量写入操作的 collection.bulkWrite()
方法。
有序批量写入操作可用性
您可以通过调用 集合.initializeOrderedBulkOp() 来定义有序批量操作 并操作 OrderedBulkOperation 对象。
App Services 支持以下OrderedBulkOperation
方法:
无序批量写入操作可用性
您可以通过调用 collection.initializeUnorderedBulkOp() 并操作其返回的 OrderedBulkOperation 对象来定义无序批量操作。
App Services 支持以下UnorderedBulkOperation
方法:
查询选项
App Services 不支持在用户函数中为任何 CRUD 操作配置以下选项。所有查询选项在系统函数中都可用。
查询选项可用性
聚合(Aggregation)
聚合方法
App Services 通过如下命令支持数据库级别和集合级别的聚合:
聚合管道阶段可用性
除$indexStats
之外的所有聚合管道阶段都可供系统用户使用。 但是,当您在 应用程序用户 的上下文中 运行聚合管道 时, App Services不支持以下聚合管道阶段。
操作 | 注意 |
---|---|
By default, $merge and $out route the entire aggregation operation tothe cluster's primary node. If you want to force these stages to respect your configured cluster read preference, set the enforceReadPref option totrue . | |
App Services performs $search operations as a system user andenforces field-level rules on the returned search results. This means that a user may search on a field for which they do not have read access. In this case, the search is based on the specified field but no returned documents include the field. The $$SEARCH_META aggregation variable is only available for functions that run as system or if the first role on the searched collection has its apply_when and read expressions set to true .If neither of these two scenarios apply, $$SEARCH_META is undefinedand the aggregation will fail. | |
聚合管道操作符可用性
当您在 系统用户Atlas App Services 上下文中 运行聚合管道 时, 支持所有 聚合管道操作符 。
App Services 支持应用程序用户上下文中的所有管道操作符,但以下操作符除外:
数据库命令
App Services不支持客户端 SDK 或 函数 中的任何 数据库命令 。但是,当通过App Services传输协议连接到MongoDB 集群时,您可以调用有限的一部分数据库命令。
传输协议部分支持以下数据库命令。下面列出了每个命令不支持的选项。
注意
App Services 应用无法在 admin
数据库上运行命令。
数据库命令可用性
命令 | 不支持的选项 | 特定于 App Services 的选项 |
---|---|---|
| ||
|
| |
| ||
| ||
| ||
|
[1] | 在具有系统级权限的函数或触发器中运行时,App Services 支持 allowDiskUse 。 |