Сортировать по $ natural в MongoDB с официальным драйвером c # - PullRequest
5 голосов
/ 22 июня 2011

Я использую официальный драйвер C # и хочу отсортировать коллекцию по $natural.

Я знаю для сортировки по ключам, я могу использовать

collection.Find(query).SetSortOrder(SortBy.Descending("Name"))

Как мне отсортировать с $natural?

Ответы [ 2 ]

8 голосов
/ 22 июня 2011

Да, вы можете использовать сортировку по убыванию.Например:

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());
}
1 голос
/ 28 июля 2015

Обновлен ответ Роберта Стама на что-то примерно эквивалентное, используя синтаксис для драйвера 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());
}
...