Comment écrire une requête pour “orderby” de Mongo pilote pour C# pour trier?
Je suis en train de récupérer les cinq documents récents de "Deal" de la collection dans une MongoDB à l'aide de C# pilote pour MongoDB. Je peux le faire avec le code ci-dessous.
public IList<TEntity> GetRecentFive()
{
IList<TEntity> entities = new List<TEntity>();
using (MongoDbContext dbContext = new MongoDbContext(_dbFactory))
{
var cursor = dbContext.Set<TEntity>().FindAll().SetSortOrder(SortBy.Descending("ModifiedDateTime")).SetLimit(5);
foreach (TEntity entity in cursor)
{
entities.Add(entity);
}
}
return entities;
}
Mais je veux obtenir uniquement la récente 5 documents et FindAll() charge tous les documents dans la collection. J'ai essayé de le faire avec Find (), mais il a besoin d'une requête en tant que paramètre. Comment puis-je écrire une requête pour "orderby" de Mongo pilote pour C# pour trier?
https://stackoverflow.com/a/2148479/778101 posé une question similaire ici. Mais le a accepté de répondre ne fonctionne pas pour moi.
OriginalL'auteur har | 2012-02-17
Vous devez vous connecter pour publier un commentaire.
est également une bonne méthode pour résoudre ce problème
OriginalL'auteur har
Ressemble à la accepté de répondre est de la date ou je ne la comprends pas. C'est de cette façon que vous commandez par dans MongoDb C# Driver 2.0:
OriginalL'auteur VSO
Vous pouvez utiliser
MongoDB.Driver.Builders.Query.Null
comme IMongoQuery paramètre pour Find() et que lesSetSortOrder().SetLimit()
Votre code peut être comme
OriginalL'auteur gsagrawal
Vous devez utiliser la méthode Find.
Query.And()
en c# sera équivalent à la requête vide{}
à mongodb shell. Si plein exemple ressemble à ceci:En fait, si vous collection forte tapé des méthodes
Find(IMongoQuery query)
, si non, alors il ont de la méthodeFindAs<Type>(IMongoQuery query)
.OriginalL'auteur Andrew Orsich
FindAll est juste un raccourci pour Trouver(Requête.Null).
Il n'y a aucune raison que vous ne pouvez pas utiliser SetSortOrder et SetLimit avec FindAll.
OriginalL'auteur Robert Stam