Azure Cosmos DB for NoSQL:Java SDK v4 範例

適用於: NoSQL

重要

若要深入了解 Java SDK v4,請檢視 Azure Cosmos DB Java SDK v4 版本資訊Maven 存放庫、Azure Cosmos DB Java SDK v4 效能秘訣和 Azure Cosmos DB Java SDK v4 疑難排解指南。 如果您目前使用的版本比 v4 舊,請參閱遷移至 Azure Cosmos DB Java SDK v4 指南,以取得升級至 v4 的協助。

重要

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

您可以免費試用 Azure Cosmos DB,不需 Azure 訂用帳戶,也不需要承諾用量。 或者,您可以建立 Azure Cosmos DB 免費層帳戶,免費使用前 1000 RU/秒和 25 GB 的儲存體。 您也可以搭配 https://localhost:8081 的 URI 使用 Azure Cosmos DB 模擬器。 如需要搭配模擬器使用的金鑰,請參閱驗證要求

azure-cosmos-java-sql-api-samples GitHub 存放庫中包含可對 Azure Cosmos DB 資源執行 CRUD 作業和其他常見作業的最新範例應用程式。 本文提供:

  • 每個範例 Java 專案檔中各項工作的連結。
  • 相關 API 參考內容的連結。

先決條件

執行此範例應用程式需要下列項目:

  • Java Development Kit 8
  • Azure Cosmos DB Java SDK v4

您可選擇使用 Maven 來取得最新的 Azure Cosmos DB Java SDK v4 二進位檔,以使用於您的專案中。 Maven 會自動加入任何必要的相依性。 否則,您可以直接下載 pom.xml 檔案中列出的相依性,並將它們加入至您的組建路徑。

<dependency>
	<groupId>com.azure</groupId>
	<artifactId>azure-cosmos</artifactId>
	<version>LATEST</version>
</dependency>

執行範例應用程式

複製範例存放庫:

$ git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git

$ cd azure-cosmos-java-sql-api-samples

您可以使用 IDE (Eclipse、IntelliJ 或 VS Code) 或從命令列使用 Maven 來執行範例。

必須設定這些環境變數

ACCOUNT_HOST=your account hostname;ACCOUNT_KEY=your account primary key

才能將您帳戶的讀取/寫入存取權授與範例。

若要執行範例,請指定其主要類別

com.azure.cosmos.examples.sample.synchronicity.MainClass

其中,sample.synchronicity.MainClass 可以是

  • crudquickstart.sync.SampleCRUDQuickstart
  • crudquickstart.async.SampleCRUDQuickstartAsync
  • indexmanagement.sync.SampleIndexManagement
  • indexmanagement.async.SampleIndexManagementAsync
  • storedprocedure.sync.SampleStoredProcedure
  • storedprocedure.async.SampleStoredProcedureAsync
  • changefeed.SampleChangeFeedProcessor (Changefeed只有一個非同步範例,沒有同步範例。)...等等

注意

每個範例都各自獨立,會自己設定,並於完成後自行清理。 這些範例會發出多個呼叫來建立 CosmosContainerCosmosAsyncContainer。 每當執行此動作時,即會根據所建立集合的效能層,對您的訂用帳戶計入 1 小時的使用費。

資料庫範例

同步非同步的資料庫 CRUD 範例檔案會顯示如何執行下列工作。 若要在執行下列範例之前,先了解 Azure Cosmos DB 資料庫,請參閱使用資料庫、容器和項目概念文章。

Task API 參考
建立資料庫 CosmosClient.createDatabaseIfNotExists
CosmosAsyncClient.createDatabaseIfNotExists
按識別碼讀取資料庫 CosmosClient.getDatabase
CosmosAsyncClient.getDatabase
讀取所有資料庫 CosmosClient.readAllDatabases
CosmosAsyncClient.readAllDatabases
刪除資料庫 CosmosDatabase.delete
CosmosAsyncDatabase.delete

集合範例

同步非同步的集合 CRUD 範例檔案會顯示如何執行下列工作。 若要在執行下列範例之前,先了解 Azure Cosmos DB 集合,請參閱使用資料庫、容器和項目概念文章。

Task API 參考
建立集合 CosmosDatabase.createContainerIfNotExists
CosmosAsyncDatabase.createContainerIfNotExists
變更已設定的集合效能 CosmosContainer.replaceThroughput
CosmosAsyncContainer.replaceProvisionedThroughput
依識別碼取得集合 CosmosDatabase.getContainer
CosmosAsyncDatabase.getContainer
讀取資料庫中的所有集合 CosmosDatabase.readAllContainers
CosmosAsyncDatabase.readAllContainers
刪除集合 CosmosContainer.delete
CosmosAsyncContainer.delete

自動調整集合範例

若要在執行這些範例之前深入了解自動調整功能,請參閱這些指示,以在您的帳戶資料庫和容器中啟用自動調整。

同步非同步的自動調整資料庫範例檔案會顯示如何執行下列工作。

Task API 參考
以指定的自動調整最大輸送量建立資料庫 CosmosClient.createDatabase
CosmosAsyncClient.createDatabase

同步非同步的自動調整集合範例檔案會顯示如何執行下列工作。

Task API 參考
以指定的自動調整最大輸送量建立集合 CosmosDatabase.createContainerIfNotExists
CosmosAsyncDatabase.createContainerIfNotExists
變更集合上已設定的自動調整最大輸送量 CosmosContainer.replaceThroughput
CosmosAsyncContainer.replaceThroughput
讀取集合的自動調整輸送量設定 CosmosContainer.readThroughput
CosmosAsyncContainer.readThroughput

分析儲存體集合範例

同步非同步的分析儲存體集合 CRUD 範例檔案會顯示如何執行下列工作。 若要在執行下列範例之前,先了解 Azure Cosmos DB 集合,請參閱 Azure Cosmos DB Synapse 和分析存放區。

Task API 參考
建立集合 CosmosDatabase.createContainerIfNotExists
CosmosAsyncDatabase.createContainerIfNotExists

項目範例

同步非同步的文件 CRUD 範例檔案會顯示如何執行下列工作。 若要在執行下列範例之前,先了解 Azure Cosmos DB 文件,請參閱使用資料庫、容器和項目概念文章。

注意

針對特定項目執行作業時,您必須指定分割區索引鍵。

Task API 參考
建立文件 CosmosContainer.createItem
CosmosAsyncContainer.createItem
依識別碼讀取文件 CosmosContainer.readItem
CosmosAsyncContainer.readItem
查詢文件 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
取代文件 CosmosContainer.replaceItem
CosmosAsyncContainer.replaceItem
Upsert 文件 CosmosContainer.upsertItem
CosmosAsyncContainer.upsertItem
刪除文件 CosmosContainer.deleteItem
CosmosAsyncContainer.deleteItem
以條件式 ETag 檢查取代文件 CosmosItemRequestOptions.setIfMatchETag (同步)
CosmosItemRequestOptions.setIfMatchETag (非同步)
僅在文件變更時才讀取文件 CosmosItemRequestOptions.setIfNoneMatchETag (同步)
CosmosItemRequestOptions.setIfNoneMatchETag (非同步)
部分文件更新 CosmosContainer.patchItem
大量文件更新 大量範例
交易式批次 批次範例

索引範例

集合 CRUD 範例檔案會說明如何執行下列工作。 若要在執行下列範例之前先了解 Azure Cosmos DB 中的索引功能,請參閱索引原則索引類型索引路徑概念性文章。

Task API 參考
在索引中包含指定的文件路徑 IndexingPolicy.IncludedPaths
從索引中排除指定的文件路徑 IndexingPolicy.ExcludedPaths
建立複合式索引 IndexingPolicy.setCompositeIndexes
CompositePath
建立地理空間索引 IndexingPolicy.setSpatialIndexes
SpatialSpec
SpatialType

如需索引編製的詳細資訊,請參閱 Azure Cosmos DB 編製索引原則

查詢範例

同步非同步的查詢範例檔案會顯示如何使用 SQL 查詢文法來執行下列工作。 若要在執行下列範例之前先了解 Azure Cosmos DB 中的 SQL 查詢參考,請參閱適用於 Azure Cosmos DB 的 SQL 查詢範例

Task API 參考
對所有文件的查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用 == 查詢等號比較 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用 != 和 NOT 查詢不等比較 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用 >、<、>=、<= 這類範圍運算子進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用範圍運算子對字串進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用 ORDER BY 進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用 DISTINCT 進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用彙總函式進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用子文件 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用文件內聯結進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用字串、數學和陣列運算子進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
透過使用 SqlQuerySpec 的參數化 SQL 進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
使用明確分頁進行查詢 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
以平行方式查詢分割的集合 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems

變更摘要範例

變更摘要處理器範例檔案會說明如何執行下列工作。 若要在執行下列範例之前先了解 Azure Cosmos DB 中的變更摘要,請參閱讀取 Azure Cosmos DB 變更摘要變更摘要處理器

Task API 參考
基本變更摘要功能 ChangeFeedProcessor.changeFeedProcessorBuilder
從頭開始讀取變更摘要 ChangeFeedProcessorOptions.setStartFromBeginning()

伺服器端程式設計範例

預存程序範例檔案會說明如何執行下列工作。 若要在執行下列範例之前先了解 Azure Cosmos DB 中的伺服器端程式設計,請參閱預存程序、觸發程序和使用者定義函式

Task API 參考
建立預存程序 CosmosScripts.createStoredProcedure
執行預存程序 CosmosStoredProcedure.execute
刪除預存程序 CosmosStoredProcedure.delete

下一步

正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎? 您可以使用現有資料庫叢集的相關資訊進行容量規劃。