sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik zien of er meer resultaten zijn van een zoekopdracht in MongoDB?

MongoDB heeft aanwijsbare cursors , waarmee u een cursor opnieuw kunt gebruiken nadat alle gegevens zijn geretourneerd. Het zou er ongeveer zo uitzien:

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n)
more = docs.hasNext()

Merk op dat er slechts 10 documenten zijn opgehaald, maar de cursor kan worden geïnspecteerd om te bepalen of er meer objecten beschikbaar zijn. Het enige probleem is dat aanpasbare cursors alleen kunnen worden gebruikt op verzamelingen met een limiet.

Het bovenstaande kan ook worden gebruikt met een gewone cursor, maar u moet zoeken naar n + 1 documenten. Dit is in principe dezelfde oplossing die u nu gebruikt. Je moet size() . gebruiken echter, omdat dat rekening houdt met de modificaties voor overslaan en beperken.

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n + 1)
more = db.size() > n

Ik ben niet bekend met PyMongo, dus ik weet dit niet zeker, maar het is mogelijk dat deze oplossing n + 1 verzendt volledige documenten naar uw aanvraag, in plaats van de vereiste n , wat resulteert in een kleine bandbreedteoverhead. Als dat het geval is, wilt u misschien een functie aan de serverzijde maken die hetzelfde doet, maar alleen een object retourneert dat n bevat documenten in een array, en een vlag die aangeeft of een n + 1 document is beschikbaar.




  1. Stappen om MongoDB en Solr te verbinden met behulp van DataImportHandler

  2. Wat is het verschil tussen MongoTemplate en MongoRepository van Spring Data?

  3. Is het mogelijk om MongoDB op te zetten in een shared hosting omgeving?

  4. MongoDB insertOne()