MongoDB 数据 API


MongoDB 数据 API

这个MongoDB 数据 API可用于查询和更新 MongoDB 数据库中的数据,无需特定于语言的驱动程序。

应尽可能使用语言驱动程序,但当驱动程序不可用或驱动程序对于应用程序而言过度时,MongoDB 数据 API 会派上用场。


使用 MongoDB 数据 API 读取和写入

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

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


集群配置

为了使用数据 API,您必须首先从 Atlas UI 启用该功能。

从 MongoDB Atlas 仪表板,导航至数据接口在左侧菜单中。

选择您想要启用 API 的数据源,然后单击启用数据API


访问权限

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


数据 API 密钥

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

点击创建 API 密钥,输入密钥的名称,然后单击生成API密钥

请务必复制 API 密钥并将其保存在安全的地方。您将不会再有机会再次看到这把钥匙。


发送数据 API 请求

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

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

要运行此示例,您需要应用程序 ID、API 密钥和集群名称。

您可以在以下位置找到您的应用程序 ID:URL端点MongoDB Atlas UI 中数据 API 页面的字段。

示例

curl --location --request POST 'https://data.mongodb-api.com/app/<DATA API APP ID>/endpoint/data/v1/action/findOne' \
--header 'Content-Type: application/json' \
--header 'Access-Control-Request-Headers: *' \
--header 'api-key: <DATA API KEY>' \
--data-raw '{
    "dataSource":"<CLUSTER NAME>",
    "database":"sample_mflix",
    "collection":"movies",
    "projection": {"title": 1}
}'
亲自试一试 »

数据 API 端点

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

有多个端点可与数据 API 一起使用。

所有端点均以基本 URL 开头:https://data.mongodb-api.com/app/<Data API App ID>/endpoint/data/v1/action/


查找单个文档

端点

POST Base_URL/findOne

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

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>,
  "projection": <projection>
}

查找多个文档

端点

POST Base_URL/find

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

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>,
  "projection": <projection>,
  "sort": <sort expression>,
  "limit": <number>,
  "skip": <number>
}

插入单个文档

端点

POST Base_URL/insertOne

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

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "document": <document>
}

插入多个文档

端点

POST Base_URL/insertMany

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

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "documents": [<document>, <document>, ...]
}

更新单个文档

端点

POST Base_URL/updateOne

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>,
  "update": <update expression>,
  "upsert": true|false
}

更新多个文档

端点

POST Base_URL/updateMany

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>,
  "update": <update expression>,
  "upsert": true|false
}

删除单个文档

端点

POST Base_URL/deleteOne

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>
}

删除多个文档

端点

POST Base_URL/deleteMany

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "filter": <query filter>
}

汇总文档

端点

POST Base_URL/aggregate

请求正文

示例

{
  "dataSource": "<data source name>",
  "database": "<database name>",
  "collection": "<collection name>",
  "pipeline": [<pipeline expression>, ...]
}