J'utilise le pilote C# officiel et je veux trier une collection par $natural
.
Je sais que pour le tri par les clés, je peux utiliser
collection.Find(query).SetSortOrder(SortBy.Descending("Name"))
Comment trier avec $natural
?
J'utilise le pilote C# officiel et je veux trier une collection par $natural
.
Je sais que pour le tri par les clés, je peux utiliser
collection.Find(query).SetSortOrder(SortBy.Descending("Name"))
Comment trier avec $natural
?
Oui, vous pouvez utiliser le tri décroissant. Par exemple:
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());
}
merci beaucoup – signals4change
Mis à jour la réponse de Robert Stam à quelque chose à peu près équivalent, en utilisant la syntaxe du pilote 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());
}
Note importante: Il n'y a pas besoin de trier par ordre croissant $ ordre naturel. C'est l'ordre MongoDB 'naturellement' renvoie les résultats. – i3arnon