Как мне представить «пустой объект» для драйвера MongoDB .NET? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь получить статистику индекса с помощью драйвера MongoDB .NET.

Я пробовал следующие варианты моего конвейера

  • var statsPipeline = new[] { new BsonDocument(new BsonElement("$indexStats", BsonNull.Value)) };
  • var statsPipeline = new[] { new BsonDocument { {"$indexStats", "" } } };
  • var statsPipeline = new[] { new BsonDocument { {"$indexStats", null } } };
  • var statsPipeline = new[] { new BsonDocument { {"$indexStats", BsonNull.Value } } };
  • var statsPipeline = new[] { new BsonDocument { {"$indexStats", "{ }"} } };

который передается на запрос

var stats = await db
    .GetCollection<BsonDocument>("CollectionName")
    .AggregateAsync<BsonDocument>(statsPipeline);

За исключением того, которое содержит null, что привело к ArgumentNullException, я получил исключение

MongoDB.Driver.MongoCommandException: сбой агрегата команд: спецификация этапа $ indexStats должна быть пустым объектом.

Как мне изменить мой запрос так, чтобы спецификация этапа $indexStats действительно была пустым объектом?

1 Ответ

1 голос
/ 20 июня 2019

Хорошо, этот работал:

var statsPipeline = new[] { new BsonDocument(new BsonElement("$indexStats", new BsonDocument())) };
...