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 查找 movies
集合中 sample_mflix
数据库的第一个文档。我们在聚合入门部分加载了此示例数据。
要运行此示例,您需要您的应用程序 ID、API 密钥和集群名称。
您可以在 MongoDB Atlas UI 中数据 API 页面上的**URL 终结点**字段中找到您的应用程序 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/<数据 API 应用程序 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>, ...]
}