如何使用JAVA从Azure的Cosmos DB集合之一中获取所有文档?

时间:2019-12-12 05:36:05

标签: java spring azure azure-cosmosdb endpoint

我浏览了文档,有两种获取文档的方法

  1. 使用Azure的端点 https:// {databaseaccount} .documents.azure.com / dbs / {db-id} / colls / {coll-id} / docs 甚至我设置了必需的标头令牌Token,我都得到了一些例外
  

{            “ code”:“禁止”,            “消息”:“此数据库帐户不支持Sql API \ r \ nActivityId:fc5ec296-b7a1-             44df-9c69-42e804177242,Microsoft.Azure.Documents.Common / 2.7.0“           }

  1. 使用SDK 通过SDK我也得到相同的上述异常,以下是我使用的Java代码 用于获取文档

    public class App {
    private static final String END_POINT = "https://***.documents.azure.com/";
    private static final String MASTER_KEY = "***";
    
    // Define an id for your database and collection
    private static final String DATABASE_ID = "iotdata";
    private static final String COLLECTION_ID = "details";
    
    public static void main(String[] args) {
    
        DocumentClient documentClient = new DocumentClient(END_POINT, MASTER_KEY, new ConnectionPolicy(),
                ConsistencyLevel.Session);
        System.out.println("Check if database " + DATABASE_ID + " exists.");
        String databaseLink = String.format("/dbs/%s", DATABASE_ID);
        try {
            ResourceResponse<Database> readDatabase = documentClient.readDatabase(databaseLink, null);
            if (readDatabase.getStatusCode() == 200) {
                System.out.println("Connection Established");
    
            }
    
            FeedResponse<Document> queryResults = documentClient.queryDocuments("/dbs/iotdata/colls/details",
                    "SELECT * FROM details WHERE mac_address = '28:b2:bd:01:d0:94'", null);
    
            System.out.println("Running SQL query...");
            for (Document family : queryResults.getQueryIterable()) {
                System.out.println(String.format("\tRead %s", family));
            }
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    }
    

    }

1 个答案:

答案 0 :(得分:0)

首先,我不得不说第二点的示例代码是完全正确的。我对其进行了测试并与Cosmos DB Sql Api一起使用。

enter image description here

根据错误:

  

此数据库帐户不支持Sql API

似乎您想使用SQL API REST API或SQL API SDK访问其他类型的cosmos db帐户(我猜可能是mongo api)。禁止这样做,恐怕就是上述错误的原因。如果您的Cosmos数据库帐户使用的是Mongo API,则应该使用使用Mongo API的工具和驱动程序。请参考这种情况:Sql api is not supported for this database Error