MongoDB Data API

MongoDB Data API

MongoDB Data API 可以用于查询和更新 MongoDB 数据库中的数据,而不需要特定语言的驱动程序。

在可能的情况下应该使用语言驱动程序,但当驱动程序不可用或驱动程序对应用程序的使用过度时,MongoDB Data API 会派上用场。

使用 MongoDB 数据 API 进行读写

MongoDB Data API 是一组预先配置的 HTTPS 端点,可用于向 MongoDB Atlas 数据库读取和写入数据。

使用 MongoDB Data API,您可以在 MongoDB Atlas 数据库中创建、读取、更新、删除或聚合文档。


群集配置

为了使用 Data API,您必须首先启用 Atlas UI 中的功能。从 MongoDB Atlas 面板中,导航到左侧菜单中的 Data API。

选择要启用 API 的数据源,然后单击 Enable the Data API(启用 Data API)。


访问级别

默认情况下,不授予任何访问权限。选择要授予 Datat API 的访问级别。选项有:无访问、只读、读写或自定义访问。


Data API 密钥

为了使用 Data API 进行身份验证,必须首先创建 Data API 密钥。

点击 Create API Key, 为密钥输入名称, 然后点击 Generate API Key

请确保复制 API 密钥并将其保存在安全的地方。因为你再也没有机会看到这个密钥了


发送一个 Data API 请求

我们现在可以使用 Data API 向数据库发送请求。

在下一个实例中,我们将使用 curl 在 sample_mflix 数据库的 movies 集合中查找第一个文档。我们在聚合简介部分加载了此示例数据。

要运行此实例,您需要您的 App Id、API 密钥和集群名称。

您可以在 MongoDB Atlas UI 的 Data API 页面的 URL Endpoint 字段中找到您的 App Id。

实例
  1. curl --location --request POST 'https://data.mongodb-api.com/app/<DATA API APP ID>/endpoint/data/v1/action/findOne' \
  2. --header 'Content-Type: application/json' \
  3. --header 'Access-Control-Request-Headers: *' \
  4. --header 'api-key: <DATA API KEY>' \
  5. --data-raw '{
  6. "dataSource":"<CLUSTER NAME>",
  7. "database":"sample_mflix",
  8. "collection":"movies",
  9. "projection": {"title": 1}
  10. }'

Data API 端点

在前面的实例中,我们在 URL 中使用了 findOne 端点。

有几个端点可用于 Data API。

所有端点都以基本 URL 开头:https://data.mongodb-api.com/app/DataAPI App ID/endpoint/data/v1/action/


查找单个文档

端点

POST Base_URL/findOne

findOne 端点用于查找集合中的单个文档。

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "document": <document>
  6. }

查找多个文档

Endpoint

POST Base_URL/find

find 端点用于查找集合中的多个文档。

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "documents": [<document>, <document>, ...]
  6. }

插入单个文档

端点

POST Base_URL/insertOne

insertOne 端点用于将单个文档插入到集合中。

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "document": <document>
  6. }

插入多个文档

端点

POST Base_URL/insertMany

insertMany 端点用于将多个文档插入到集合中。

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "documents": [<document>, <document>, ...]
  6. }

更新单个文档

端点

POST Base_URL/updateOne

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "filter": <query filter>,
  6. "update": <update expression>,
  7. "upsert": true|false
  8. }

更新多个文档

端点

POST Base_URL/updateMany

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "filter": <query filter>,
  6. "update": <update expression>,
  7. "upsert": true|false
  8. }

删除单个文档

端点

POST Base_URL/deleteOne

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "filter": <query filter>
  6. }

删除多个文档

端点

POST Base_URL/deleteMany

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "filter": <query filter>
  6. }

聚合文档

端点

POST Base_URL/aggregate

请求主体
实例
  1. {
  2. "dataSource": "<data source name>",
  3. "database": "<database name>",
  4. "collection": "<collection name>",
  5. "pipeline": [<pipeline expression>, ...]
  6. }