Составной указатель для необязательного поля в Космосе - PullRequest
1 голос
/ 27 апреля 2020

У меня есть коллекция в базе данных Cosmos, которая содержит документы разных типов (и схем):

{
"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

Ответы [ 2 ]

2 голосов
/ 27 апреля 2020

Мы не поддерживаем подстановочные знаки для составных индексов в базе данных Cosmos. Вот справочный пример составного индекса .

Мы обновим наши документы, чтобы быть более понятными в этом. Я просмотрел их, и сегодня мы не документируем это.

Спасибо.

0 голосов
/ 28 апреля 2020

В составных индексах вам просто нужно указать пути, которые вы хотите проиндексировать, а не значения, поэтому для вашего примера:

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

Просто укажите тип заказа, который вам нужен для ваших запросов ( Я просто использовал их в качестве примера).

Для разных документов, которые имеют разные свойства под вашим свойством данных, я полагаю, вам придется добавлять каждый составной индекс для каждого случая использования, который вам нужен, так как составные индексы не поддерживают подстановочные знаки, поэтому вам нужно добавить:

/data/field1 /data/field2 etc etc

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...