MongoDB Data API
MongoDB Data API
MongoDB Data API 可用于查询和更新 MongoDB 数据库中的数据,而无需特定于语言的驱动程序。
应尽可能使用语言驱动程序,但是当驱动程序不可用或对于应用程序而言过于繁琐时,MongoDB Data API 就派上了用场。
使用 MongoDB Data API 读取和写入
MongoDB Data API 是一组预先配置的 HTTPS 端点,可用于从 MongoDB Atlas 数据库中读取和写入数据。
使用 MongoDB Data API,您可以在 MongoDB Atlas 数据库中创建、读取、更新、删除或聚合文档。
集群配置
为了使用 Data API,您必须首先从 Atlas UI 启用该功能。
在 MongoDB Atlas 仪表板中,从左侧菜单导航到 Data API。
选择要启用 API 的数据源,然后单击“启用 Data API”。
访问权限
默认情况下,不授予任何访问权限。选择您要授予 Data API 的访问级别。可选择的有:无访问权限、只读、读写或自定义访问。
Data API 密钥
为了通过 Data API 进行身份验证,您必须首先创建 Data API 密钥。
单击“创建 API 密钥”,为密钥输入一个名称,然后单击“生成 API 密钥”。
请务必复制 API 密钥并将其保存在安全的地方。您不会再有机会再次看到这个密钥。
发送 Data API 请求
现在我们可以使用 Data API 向数据库发送请求。
在下一个例子中,我们将使用 curl 在我们的 sample_mflix
数据库的 movies
集合中找到第一个文档。我们在“聚合介绍”部分中加载了此示例数据。
要运行此例子,您需要您的应用 ID、API 密钥和集群名称。
您可以在 MongoDB Atlas UI 的 Data 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", "投影": {"title": 1} }'
Data API 端点
在前面的示例中,我们在 URL 中使用了 findOne
端点。
有几个端点可用于 Data API。
所有端点均以基本 URL 开头:https://data.mongodb-api.com/app/<Data API App ID>/endpoint/data/v1/action/
查找单个文档
端点
POST Base_URL/findOne
findOne
端点用于在集合中查找单个文档。
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器>, "投影": <投影> }
查找多个文档
端点
POST Base_URL/find
find
端点用于在集合中查找多个文档。
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器>, "投影": <投影>, "sort": <排序表达式>, "limit": <数字>, "skip": <数字> }
插入单个文档
端点
POST Base_URL/insertOne
insertOne
端点用于将单个文档插入到集合中。
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "document": <文档> }
插入多个文档
端点
POST Base_URL/insertMany
insertMany
端点用于向集合中插入多个文档。
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "documents": [<文档>, <文档>, ...] }
更新单个文档
端点
POST Base_URL/updateOne
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器>, "update": <更新表达式>, "upsert": true|false }
更新多个文档
端点
POST Base_URL/updateMany
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器>, "update": <更新表达式>, "upsert": true|false }
删除单个文档
端点
POST Base_URL/deleteOne
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器> }
删除多个文档
端点
POST Base_URL/deleteMany
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "filter": <查询过滤器> }
聚合文档
端点
POST Base_URL/aggregate
请求正文
实例
{ "dataSource": "<数据源名称>", "database": "<数据库名称>", "collection": "<集合名称>", "pipeline": [<管道表达式>, ...] }