Cet article présente principalement en détail les deux méthodes de mongoDB pour implémenter la pagination Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
La pagination de MongoDB. requête utilise les trois fonctions tableau de limit(), skip() et sort() pour effectuer une requête de pagination.
Ce qui suit sont mes données de test
db.test.find().sort({"age":1});
La première méthode
Interrogez les données de la première page : db.test.find().sort({"age":1}).limit(2); 🎜>
Interrogez les données sur la deuxième page : db.test.find().sort({"age":1}).skip(2).limit(2) ; Requérez le nombre d'autres pages et ainsi de suite. . .La deuxième méthode
Interroger les données de la première page : db.test.find().sort({"age":1}).limit( 2); Identique à la première méthode ci-dessus. Interroger les données de la deuxième page : Cela permet d'obtenir la valeur du dernier enregistrement de la première page, puis d'exclure les enregistrements précédents pour obtenir un nouvel enregistrement En résumé, si la quantité de données n'est pas très importante, vous pouvez utiliser la première méthode. Après tout, c'est relativement simple. Si la quantité de données est relativement importante, c'est mieux. pour utiliser la deuxième méthode, car cela Vous n'avez pas besoin d'utiliser la fonction skip()Skip saute trop d'enregistrements et l'efficacité est un peu faibleAprès un examen attentif, la deuxième méthode est. en effet ne convient pas au saut de page et n'est pas efficace non plus
Pour les données massives, nous devons effectuer un traitement spécial
Il existe les deux méthodes suivantes
<.>La première méthodeLimiter le nombre de pages de pagination, similaire au traitement de pagination de Baidu, qui ne fait que affiche les sept cents enregistrements précédents, comme celui-ci. Il n'est pas nécessaire de prendre en compte les problèmes de performances. Après tout, la plupart des gens se contentent de se tourner vers les dix premières pages et de trouver ce dont ils ont besoin
Les résultats statistiques ci-dessous doivent être estimés en fonction. sur la proportion de ces enregistrements trouvés Estimer le nombre total d'enregistrements La deuxième méthodeNous pouvons le faire en supposant qu'il soit trié en fonction. pour identifier, nous pouvons suivre l'identifiant. Le numéro de série de la page où se trouve l'identifiant est stocké dans redis/MemberCached,
comme ceci, en supposant que chaque page contient 10 enregistrements page d'identification1 12 1. . . 101112122. . . . 20 2De cette façon, lorsque nous vérifions la première page, nous pouvons récupérer directement dix éléments de données En supposant qu'il y ait 100 millions d'éléments de données, un enregistrement L'identifiant occupe 4 octets. Les autres informations occupent un octet et un enregistrement occupe 5 octets 1 0000 0000 *5/(1024*1024)=476MBCette approche utilise généralement l'espace pour le temps. La majeure partie du temps de requête de la base de données est consacrée à la connexion à la base de données. Le mettre dans le cache peut considérablement accélérer la requête.
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!