使用官方c#驱动程序在MongoDB中按$ natural排序

时间:2011-06-22 04:08:46

标签: c# .net mongodb mongodb-.net-driver

我正在使用官方C#驱动程序,我希望按$natural对系列进行排序。

我知道按键排序,我可以使用

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

如何使用$natural排序?

2 个答案:

答案 0 :(得分:8)

是的,您可以使用它降序排序。例如:

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 :(得分:1)

使用2.0驱动程序的语法更新了Robert Stam对大致相同的答案...

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());
}