Уникальный редкий индекс на cosmosdb не работает - PullRequest
0 голосов
/ 01 апреля 2019

Мой документ:

{
 "firstName" : "My first name",
 "lastName": "My lastName",
}

У меня есть индексированные поля fristName и lastName с уникальным разреженным индексом .Это означает, что у меня всегда будут уникальные firstName и lastName в моей базе данных.

Но у него могут быть нулевые значения (т. Е. Поле отсутствует при вставке в базу данных) для полей firstName и lastName.

Это отлично работает , как и ожидалось в MongoDB v3.4 .Но когда я пытаюсь вставить, используя тот же код в cosmosdb, я получаю ошибку

multiple write errors: [{write errors: [{E11000 duplicate key error collection: user Failed _id or unique key constraint}]}, {<nil>}]

Поддерживает ли cosmosdb уникальный разреженный индекс?

Я нашел эту ссылку , котораяскажем, он не поддерживает uniue sparse index.

И эта ссылка , которая говорит, что sparse index поддерживается по умолчанию.

1 Ответ

0 голосов
/ 12 апреля 2019

Существует разница между уникальными разреженными индексами и , определяющими уникальный ключ коллекции на основе свойства разреженного документа. Итак, часть вашего поста в отношении этого не поддерживается:

I found this link which say it do not support uniue sparse index.

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

Разреженные уникальные ключи не поддерживаются. Если некоторые уникальные значения пути отсутствуют, они обрабатываются как нулевые значения, которые участвуют в ограничении уникальности. По этой причине для удовлетворения этого ограничения может быть только один элемент с нулевым значением.

Пожалуйста, посмотрите на следующее переполнение стека post .

...