Mongodb游标方法排序


Mongodb cursor method 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
        )
    );
    return $con->executeQuery('Core'Helper::getDb()['mongodb']['db'] . '.' . $collection, $query);
}

我为mongodb驱动程序开发类。我遇到了麻烦,例如,如何为mongoDB调用函数sorthttps://docs.mongodb.com/manual/reference/method/cursor.sort/在本文档中,我阅读了cursorsort,但在php中'MongoDB'Driver'Cursor类没有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个参数,选项这是数组中可以包含排序、排序等选项的集合。但这并不是完成代码,因为我想为集合排序和其他选项创建新的方法。

在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;
}