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>, ...]
}