Méthodes Limit et Skip MongoDB
Méthode Limit() de MongoDB
Si vous avez besoin de lire un nombre spécifié d'enregistrements de données dans MongoDB, vous pouvez utiliser la méthode limit() de MongoDB. Si vous souhaitez ignorer un nombre spécifié de documents et lire des données, vous pouvez utiliser la méthode skip().
La méthode limit() est utilisée pour limiter le nombre de documents renvoyés par une requête, tandis que la méthode skip() est utilisée pour ignorer un nombre spécifié de documents. Ces deux méthodes sont souvent utilisées ensemble pour mettre en œuvre des requêtes de pagination ou le traitement par lots sur de grands ensembles de données.
Méthode limit()
La méthode limit() est utilisée pour limiter le nombre de documents renvoyés par une requête.
Syntaxe
La syntaxe de base de la méthode limit() est la suivante :
db.collection.find().limit(<limit>)
<limit>: Le nombre de documents à renvoyer.
Exemple
db.myCollection.find().limit(10);
Exemple
Les données de la collection col sont les suivantes :
{ "_id" : ObjectId("56066542ade2f21f36b0313a"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("56066549ade2f21f36b0313b"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("5606654fade2f21f36b0313c"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "mongodb" ], "likes" : 100 }
L'exemple suivant affiche deux enregistrements des documents de la requête :
> db.col.find({},{"title":1,_id:0}).limit(2)
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
>
Remarque :Si vous ne spécifiez pas de paramètre dans la méthode limit(), toutes les données de la collection seront affichées.
Méthode skip()
Outre l'utilisation de la méthode limit() pour lire un nombre spécifié d'enregistrements de données, nous pouvons également utiliser la méthode skip() pour ignorer un nombre spécifié d'enregistrements de données. La méthode skip() accepte également un paramètre numérique correspondant au nombre d'enregistrements à ignorer.
La méthode skip() est utilisée pour ignorer un nombre spécifié de documents, ce qui permet la pagination ou les requêtes par lots.
Syntaxe
Le format de syntaxe de la méthode skip() est le suivant :
db.collection.find().skip(<skip>)
<skip>: Le nombre de documents à ignorer.
Exemple
db.myCollection.find().skip(10).limit(10);
Exemple
L'exemple suivant n'affichera que les données du deuxième document
>db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
{ "title" : "Java 教程" }
>
Requête de pagination :
Exemple
db.myCollection.find().skip(0).limit(10);
// Deuxième page, 10 documents par page
db.myCollection.find().skip(10).limit(10);
// Troisième page, 10 documents par page
db.myCollection.find().skip(20).limit(10);
Remarque :Le paramètre par défaut de la méthode skip() est 0.
Notes
skip()etlimit()Les méthodes sont généralement utilisées ensemble pour mettre en œuvre des requêtes de pagination. Toutefois, leur utilisation sur de grands ensembles de donnéesskip()peut entraîner des problèmes de performance, car MongoDB doit parcourir et ignorer le nombre spécifié de documents lors de l'exécution de la requête, il est donc recommandé de ne les utiliser que lorsque c'est nécessaireskip()méthode, et essayez d'éviter une utilisation continue sur de grands ensembles de données.- Lorsqu'elles sont combinées
skip()etlimit(),skip()devrait êtrelimit()utilisée auparavant, pour éviter tout comportement inattendu.
En utilisantlimit()etskip()méthode, vous pouvez implémenter la pagination des résultats de requête dans MongoDB, ce qui améliore la flexibilité et les performances des requêtes.