Mongodb游标方法排序

时间:2016-07-26 08:06:29

标签: php mongodb sorting

/**
 * @param $key
 * @param $value
 * @param $collection
 * @return array | \MongoDB\Driver\Cursor
 */
static function simpleSelect($key, $value, $collection)
{
    $con = \Core\Model\Mongo::getConnect();

    $query = new \MongoDB\Driver\Query(
        array(
            $key => $value
        )
    );

    return $con->executeQuery(\Core\Helper::getDb()['mongodb']['db'] . '.' . $collection, $query);
}

我为mongodb司机开发课程。我遇到麻烦,如何为mongoDB调用函数sort,例如本文档中的https://docs.mongodb.com/manual/reference/method/cursor.sort/我读了cursor sort但{php} \MongoDB\Driver\Cursor } class没有sort方法......

我修改了我的代码

/**
 * @param $key
 * @param $value
 * @param $collection
 * @return array | \MongoDB\Driver\Cursor
 */
static function simpleSelect($key, $value, $collection)
{
    $con = \Core\Model\Mongo::getConnect();

    $query = new \MongoDB\Driver\Query(
        array(
            $key => $value
        ),
        array('sort' => array('time' => -1))
    );

    return $con->executeQuery(\Core\Helper::getDb()['mongodb']['db'] . '.' . $collection, $query);
}

方法查询有2个参数,选项这个数组可以包含sort,ordered和其他选项进行收集。但这不是完成代码,因为我想为集合排序和其他选项创建新方法。

1 个答案:

答案 0 :(得分:0)

在PHP中,用于对Mongodb集合进行排序的语法是

// Sort on field x, ascending 
$cursor->sort(array('x' => 1));

您的代码可以修改为: -

static function simpleSelect($key, $value, $collection)
{
    $con = \Core\Model\Mongo::getConnect();

    $query = new \MongoDB\Driver\Query(
        array(
            $key => $value
        )
    );
    $cursor = $con->executeQuery(\Core\Helper::getDb()['mongodb']['db'] . '.' . $collection, $query);
   $cursor->sort(array('x' => 1));
   return $cursor;
}