Почему MongoDB.Driver Indexes.CreateOne не может создать индекс с ошибкой «Команда createIndexes не выполнена»? - PullRequest
0 голосов
/ 12 марта 2020

При создании новой коллекции с помощью кода этот вызов для добавления нового индекса не выполняется:

private static void CreateCollection<T>(string collectionName, CreateIndexModel<T> index)
{
  var database = GetMongoDatabase();

  database.CreateCollection(collectionName);

  var collection = database.GetCollection<T>(collectionName);
  collection.Indexes.CreateOne(index); // Message=Command createIndexes failed
}

1 Ответ

0 голосов
/ 12 марта 2020

Вам нужно дождаться создания asyn c Collection перед добавлением индекса:

private static async Task CreateCollection<T>(string collectionName, CreateIndexModel<T> index)
{
  var database = GetMongoDatabase();

  await database.CreateCollectionAsync(collectionName);

  var collection = database.GetCollection<T>(collectionName);
  collection.Indexes.CreateOne(index);
}
...