sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan laver man paginering ved hjælp af områdeforespørgsler i MongoDB?

Da samlingen, jeg søgte, havde duplikerede værdier, var jeg nødt til at oprette et sammensat indeks på produktnavn og id.

Opret sammensat indeks

db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1}); 

Dette løste mit problem.
Reference:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ

Forudsat at du har disse værdier:

{a:1, b:1}{a:2, b:1}{a:2, b:2}{a:2, b:3}{a:3, b:1 }

Så du gør dette for den områdebaserede paginering (sidestørrelse på 2):

1. side

find().sort({a:1, b:1}).limit(2){a:1, b:1}{a:2, b:1} 

2. side

find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2){a:2, b:2}{a:2, b:3} 

3. side

find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2){a:3, b:1} 

Her er dokumenterne til $min/max:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers

Hvis du ikke har duplikerede værdier i din samling, behøver du ikke bruge min &max eller oprette et sammensat indeks. Du kan bare bruge $lt &$gt.



  1. Hvordan opdaterer jeg et Mongo-dokument efter at have indsat det?

  2. MongoDB 3.2-godkendelse mislykkedes

  3. node.js mongodb vælg dokument efter _id node-mongodb-native

  4. Sådan bruger du Spring til at oprette forbindelse til MongoDB, som kræver godkendelse