sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hanterar man pagineringsfrågor korrekt med mongodb och php?

Eftersom resultatet av find()->limit()->skip() är en Mongo_Cursor behöver du inte köra den faktiska frågan två gånger.

Följande bör också fungera :

$skip = (int)($docs_per_page * ($page - 1));
$limit = $docs_per_page;

$query = array("loc" => array('$near' => array('lat' => $latitude, 'lon' => $longitute) ),
    "tags" => $tag, "seeking" => $this->session->userdata('gender'),
    "gender" => $this->session->userdata('seeking'));

$fields = array("username", "zipcode", "tags", "birth_date");
$cursor = $collection->find($query, $fields)->limit($limit)->skip($skip);
$total_documents = $cursor->count();
$data['result'] = $cursor;

btw jag läste fel först din fråga, jag trodde att du inte visste om limit &skip.



  1. mongod HostnameCanonicalizationWorker-fel på OS X

  2. Försämrande prestanda för mongoldb-dokumentuppdateringar när rekordet växer

  3. Förhindrar databasrelaterade tävlingsförhållanden i Node.js

  4. MongoDB i Go (golang) med mgo:hur använder man logiska operatorer för att fråga?