2011-06-22 7 views
5

Używam oficjalnego sterownika C# i chcę posortować kolekcję według $natural.

wiem do sortowania przez klawiszy, można użyć

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

Jak to zrobić porządek z $natural?

+0

Ważna uwaga: Nie ma potrzeby, aby posortować według rosnąco $ naturalny porządek. To kolejność MongoDB 'natural' zwraca wyniki. – i3arnon

Odpowiedz

8

Tak, możesz użyć sortowania rosnącego obok niego. Na przykład:

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

dziękuję bardzo – signals4change

0

Updated odpowiedź Roberta Stam coś z grubsza odpowiednik, używając składni dla kierowcy 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()); 
}