簡體   English   中英

如何修復:Azure Cosmos DB SQL API似乎不起作用

[英]How to fix: Azure Cosmos DB SQL API does not seem to work

我目前正在參與從MongoDB實例遷移到Azure Cosmos數據庫實例。 因此,我拋棄了mongo-java-driver依賴項並將其替換為最新的azure-documentdb(版本2.4.0)依賴項。

我在我的foobar Azure Cosmos數據庫中有一個trips集合,其中包含以下文檔結構:

{
    "_id" : ObjectId("5d0cdd6a6b1bb358985eb5d5"),
    "od" : 1561075200000,
    "rid" : "d001",
    "tnr" : 1007,
    "rsn" : 0,
    "p" : [
        {
            "s" : 1,
            "st" : "P",
            "sid" : "18003100",
        },
        {...}
    ]
}

我為這個遷移項目嘗試的第一件事就是使用一個簡單的where語句來查詢我的trip集合,該語句的代碼與這里的示例非常相似: https//github.com/Azure/azure-documentdb-的Java /

問題如下。 當我嘗試查詢trip集合中的rid等於d001文檔時,它會使用以下代碼返回零結果。 不應該是這種情況,因為我的旅行集合中有9個匹配的文件。

DocumentClient client = new DocumentClient(
    HOST, 
    MASTER_KEY, 
    ConnectionPolicy.GetDefault(), 
    ConsistencyLevel.Session);

FeedOptions feedOptions = new FeedOptions();
FeedResponse<Document> query = client.queryDocuments(
    "dbs/foobar/colls/trips", 
    "SELECT * FROM trips t WHERE t.rid='d001'", 
    feedOptions);

List<Document> results = query.getQueryIterable().toList();
System.out.println(results.size());

同時將查詢更改為"SELECT t.rid FROM trips t"會返回零結果。 同時將查詢更改為"SELECT * FROM trips t WHERE t['rid']='d001'"返回零結果。

當我將查詢更改為"SELECT * FROM trips t"一切似乎都很好,它會返回集合中的所有文檔。

這可能是什么問題?

嘗試使用以下查詢,

FeedResponse<Document> query = client.queryDocuments(
    "dbs/foobar/colls/trips", 
    "SELECT * FROM trips t WHERE t.rid='d001'", 
    null).toBlocking().first();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM