簡體   English   中英

如何使用 $v 和 $t 在 Azure 門戶上查詢 Cosmos DB

[英]How to query Cosmos DB on Azure Portal with $v and $t

我在 Azure 上有一個帶有 SQL API 的 Cosmos DB。 我可以使用他們的 Nuget 包通過 C# 查詢數據,但是從 Azure 門戶 > Cosmos DB > 數據資源管理器運行查詢時出現錯誤。

我想獲得$v的值並基於它進行一些過濾。

使用

SELECT c.id, c.Remarks FROM c

我得到了嵌套對象的結果(見下面的結果)。 但我只需要嵌套對象中的一個值。

我嘗試將語法更改為

SELECT c.id, c.Remarks.$v FROM c

或者

SELECT c.id, c.Remarks.v FROM c

或者

SELECT c.id, c.Remarks/$v FROM c

但我收到一個錯誤。

當前結果:

[
    {
        "id": "e9f3ae8e47ab4bbca97dadf3ff1fe08c",
        "Remarks": {
            "$t": 2,
            "$v": "Success"
        }
    },
    {
        "id": "97bea2e9919c48f2bde83c11c50e8177",
        "Remarks": {
            "$t": 2,
            "$v": "Failure"
        }
    },
    {
        "id": "bb142e17b8184d5c84a21aa2e218e3be",
        "Remarks": {
            "$t": 2,
            "$v": "Success"
        }
    }
]

預期成績:

我想看到(最好應用過濾器只看到失敗)

[
    {
        "id": "e9f3ae8e47ab4bbca97dadf3ff1fe08c",
        "Remarks": "Success"
    },
    {
        "id": "97bea2e9919c48f2bde83c11c50e8177",
        "Remarks": "Failure"
    },
    {
        "id": "bb142e17b8184d5c84a21aa2e218e3be",
        "Remarks": "Success"
    }
]

我遇到了這樣的錯誤

Syntax error, invalid token '$'

但我找不到任何解決方案。

看起來您正在嘗試對通過 Mongo 端點插入的文檔使用 SQL API。 這就是導致 $t/$v 東西的原因。

混合和匹配 Mongo 和 SQL API 有點復雜,不推薦使用。

您可以做以下幾件事之一,沒有特定的順序。

  1. 使用 Mongo 進行查詢
  2. 僅使用 SQL API 重新創建您的集合
  3. 查看這個關於如何針對 Mongo 編寫 SQL API 查詢的答案: Cosmos DB + pyDocumentDB + Databricks (你必須做一點[]來訪問以$開頭的東西,就像這樣: SELECT TOP 10 twttr["$v"].tweet["$v"].source FROM twttr )

我個人建議不要做#3,除非你必須這樣做。 如果您想使用 SQL,我建議您只使用 SQL 並使用 #2。

暫無
暫無

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

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