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, вы можете обратиться к нему.