Paging efficace dans MongoDB avec mgo : une solution utilisant Cursor.min()
Mongo fournit une fonctionnalité de pagination à l'aide des méthodes Skip et Limit dans la requête opérations. Cependant, ces méthodes peuvent devenir inefficaces lorsque le nombre de pages augmente. Pour optimiser la pagination, MongoDB a introduit la fonctionnalité curseur.min(), qui permet aux requêtes de démarrer à partir d'une entrée d'index spécifique.
Malheureusement, le pilote mgo.v2 ne prend pas directement en charge curseur.min(). Cet article présente une solution utilisant la méthode Database.Run() et la commande find pour obtenir une pagination efficace à l'aide de curseur.min().
Implémentation manuelle
Créer la recherche Commande :
1 2 3 4 5 6 7 8 9 10 11 |
|
Exécuter la commande :
1 2 3 4 5 6 |
|
Désérialiser le Résultats :
1 2 3 4 |
|
Obtenir le curseur suivant :
1 2 3 4 |
|
Convertir Données du curseur vers String :
1 2 3 |
|
Utilisation du package minquery
minquery fournit une interface simplifiée pour utiliser curseur.min() avec mgo .v2 :
1 2 3 4 5 6 7 |
|
newCursor stocke les données du curseur pour la pagination ultérieure requêtes.
Remarque : Lorsque vous utilisez minquery.All(), fournissez les noms de champs utilisés dans le curseur (entrée d'index) pour permettre la création de la valeur de curseur appropriée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!