MongoDB Indexes.CreateOneAsync Исключение с использованием Azure DocumentDB

Я пытаюсь создать несколько уникальных индексов с помощью драйвера C# MongoDB, подключающегося к экземпляру Azure DocumentDB, но я получаю следующее исключение при попытке создать второй уникальный индекс:

MongoDB.Driver.MongoCommandException: 'Команда createIndexes завершилась ошибкой: Сообщение: {"Ошибки":["Количество уникальных ключей не может быть больше 1."]}

Кажется, я не могу найти какую-либо документацию о количестве уникальных ключей для коллекции Azure DocumentDB. Обратите внимание, что это исключение не возникает при использовании фактического экземпляра MongoDB.

var keys = Builders<ProductEntity>.IndexKeys.Ascending(p => p.UPC);
var options = new CreateIndexOptions<ProductEntity>() { Name = "UX_UPC", Unique = true, Sparse = true };
var result = await _collection.Indexes.CreateOneAsync(keys, options);

keys = Builders<ProductEntity>.IndexKeys.Ascending(p => p.Manufacturer).Ascending(p => p.MPN);
options = new CreateIndexOptions<ProductEntity>() { Name = "UX_Manufacturer_MPN", Unique = true, Sparse = true };
result = await _collection.Indexes.CreateOneAsync(keys, options);

public class ProductEntity
{
    public Guid Id { get; set; }
    public string UPC { get; set; }
    public string MPN { get; set; }
    public string Manufacturer { get; set; }
}

1 ответ

Решение

Из этого блога мы можем обнаружить, что в настоящее время он не поддерживает уникальные индексы.

Общая доступность - это только начало всех функций и улучшений, которые мы храним для DocumentDB: API для MongoDB. В ближайшее время мы выпустим поддержку уникальных индексов и несколько важных улучшений производительности.

Этот поток обсуждался Невозможно создать индекс в Azure DocumentDb с протоколом Mongodb, вы можете обратиться к нему.

Другие вопросы по тегам