簡體   English   中英

Cosmos 中可選字段的復合索引

[英]Composite index for optional field in Cosmos

我在 Cosmos DB 中有一個集合,其中包含不同類型(和模式)的文檔:

{
"partKey": "...",
"type": "type1",
"data": {
    "field1": 123,
    "field2": "sdfsdf"
  }
}
{
"partKey": "...",
"type": "type2",
"data": {
    "field3": ["123", "456", "789"]
  }
}

我正在嘗試創建一個復合索引[/type, /data/field3/[]/?] ,但遇到了一個問題:

The indexing path '\\/data\\/field3\\/[]\\/?' could not be accepted, failed near position '15'. Please ensure that the path is a valid path. Common errors include invalid characters or absence of quotes around labels

Cosmos DB 中的復合索引不支持通配符。 這是一個綜合指數樣本作為參考。

我們將更新我們的文檔以使其更加清晰。 我查看了這些,我們今天沒有記錄。

謝謝。

在復合索引中,您只需要指定要索引的路徑,而不是值,因此對於您的示例:

"compositeIndexes":[  
        [  
            {  
                "path":"/type",
                "order":"ascending"
            },
            {  
                "path":"/data/field3",
                "order":"descending"
            }
        ]
    ]

只需指定查詢所需的訂單類型(我只是以這些為例)。

對於在數據屬性下具有不同屬性的不同文檔,我相信您必須為所需的每個用例添加每個復合索引,因為復合索引不支持通配符,因此您需要添加:

/data/field1 /data/field2 etc etc

希望這可以幫助。

暫無
暫無

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

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