2013-04-24 13 views
6

Obserwuję przykład z docs PHP uporządkować pewne zapisy w kolekcji:Dlaczego ten mongo sort nie działa w PHP?

$cursor = $mongo->party_scores->find()->limit(10); 
    $cursor = $cursor->sort(array("score",-1)); 
    foreach($cursor as $doc) { 
     print_r($doc); 
    } 

Spowoduje to, widzę dokumentów w kolejności losowej (bez sortowania).

Ale wykonywanie kwerendy z konsoli Mongo produkuje poprawnie posortowane odpowiedź:

db.party_scores.find().sort({score : -1 }) 

czuję jak tam musi być coś oczywistego mi brakuje.

Odpowiedz

13

Myślę, że widzę problem. Zamiast robić to:

$cursor->sort(array("score",-1)) 

Spróbuj tego:

$cursor->sort(array("score" => -1)) 

łatwo pomylić się, ale bardzo frustrujące, aby znaleźć jeśli nie widać go od razu.

+1

Wygląda na to, że tak, dziękuję. Pewnie bym wpatrywał się w nią przez kolejną godzinę, nie widząc tego. – justkevin

+0

Uncaught Error: wywołanie niezdefiniowanej metody MongoDB \ Driver \ Cursor :: sort()? Jaki jest błąd? – Sibidharan

Powiązane problemy