为什么这个mongo不适用于PHP?

jus*_*vin 6 php mongodb

我正在关注PHP文档中的一个示例来对集合中的一些记录进行排序:

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

这样做,我以随机顺序看到文档(未排序).

但是从mongo控制台执行此查询会产生正确排序的响应:

db.party_scores.find().sort({score : -1 })
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一些显而易见的东西我不见了.

Tim*_*ier 13

我想我看到了问题.而不是这样做:

$cursor->sort(array("score",-1))
Run Code Online (Sandbox Code Playgroud)

试试这个:

$cursor->sort(array("score" => -1))
Run Code Online (Sandbox Code Playgroud)

很容易犯错误,但如果你没有马上看到它就会非常令人沮丧.

  • 未捕获的错误:调用未定义的方法 MongoDB\Driver\Cursor::sort() ?错误是什么? (3认同)