2013-04-24 18 views
6

Sto seguendo un esempio dalla documentazione di PHP per ordinare alcuni record in una collezione:Perché questo ordinamento mongo non funziona in PHP?

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

Facendo questo, vedo i documenti in ordine casuale (non ordinato).

Ma che esegue la query dalla console mongo produce una risposta corretta ordinato:

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

Mi sento come se ci deve essere qualcosa di ovvio che mi manca.

risposta

13

Penso di vedere il problema. Invece di fare questo:

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

Prova questa:

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

errore facile da fare, ma molto frustrante da trovare se non si vede subito.

+1

Questo sembra essere stato, grazie. Probabilmente l'avrei guardato per un'altra ora senza vederlo. – justkevin

+0

Errore non rilevato: chiamata al metodo non definito MongoDB \ Driver \ Cursor :: sort()? Qual è l'errore? – Sibidharan