Я использую официальный драйвер C# и хочу отсортировать коллекцию по $natural
.
Я знаю, для сортировки по ключам я могу использовать
collection.Find(query).SetSortOrder(SortBy.Descending("Name"))
Как сортировать с помощью $natural
?
Я использую официальный драйвер C# и хочу отсортировать коллекцию по $natural
.
Я знаю, для сортировки по ключам я могу использовать
collection.Find(query).SetSortOrder(SortBy.Descending("Name"))
Как сортировать с помощью $natural
?
Да, вы можете использовать сортировку по убыванию. Например:
collection.Insert(new BsonDocument("x", 1));
collection.Insert(new BsonDocument("x", 2));
collection.Insert(new BsonDocument("x", 3));
foreach (var document in collection.FindAll()
.SetSortOrder(SortBy.Descending("$natural")))
{
Console.WriteLine(document.ToJson());
}
Обновлен ответ Роберта Стэма на что-то примерно эквивалентное, используя синтаксис для драйвера 2.0...
await collection.InsertOneAsync(new BsonDocument("x", 1));
await collection.InsertOneAsync(new BsonDocument("x", 2));
await collection.InsertOneAsync(new BsonDocument("x", 3));
foreach (
var document in
await
collection.Find(_ => true)
.Sort(new SortDefinitionBuilder<BsonDocument>().Descending("$natural"))
.ToListAsync())
{
Console.WriteLine(document.ToJson());
}
naturally
возвращает результаты. - person i3arnon   schedule 13.07.2014