这个MongoDB 数据 API可用于查询和更新 MongoDB 数据库中的数据,无需特定于语言的驱动程序。
应尽可能使用语言驱动程序,但当驱动程序不可用或驱动程序对于应用程序而言过度时,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 向数据库发送请求。
在下一个示例中,我们将使用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}
}'
亲自试一试 »
在前面的示例中,我们使用了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>, ...]
}