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 请求
我们现在可以使用数据 API 向数据库发送请求。
在下一个示例中,我们将使用 curl 来查找我们 `sample_mflix` 数据库的 `movies` 集合中的第一个文档。我们在“聚合简介”部分加载了这些示例数据。
要运行此示例,您需要您的 App ID、API 密钥和集群名称。
您可以在 MongoDB Atlas UI 的数据 API 页面的 **URL 端点** 字段中找到您的 App ID。
示例
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 端点
在前面的示例中,我们在 URL 中使用了 `findOne` 端点。
数据 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>, ...]
}