mongodb php order,ThinkPHP无法使用order对MongoDB排序

在使用ThinkPHP对MongoDB进行测试时,order方法不生效的解决办法:

编辑:/vendor/topthink/think-mongo/src/Query.php

第1369行

修改后:/**

* 设置sort

* @access public

* @param array|string|object   $field

* @param string                $order

* @return $this

*/

public function order($field, $order = '')

{

if (is_array($field)) {

$this->options['sort'] = $field;

}else if(is_string($field) && $field!="" && $order=="") {

/*

* @todo 修正thinkphp mongodb order 问题,现支持格式: id desc,creation_time desc

* */

$order = explode(",",$field);

foreach ($order as $k){

$tmparray =  explode(" ",$k);

$this->options["sort"][trim($tmparray[0])] =  'asc' == strtolower(trim($tmparray[1])) ? 1 : -1;

}

}else {

$this->options['sort'][$field] = 'asc' == strtolower($order) ? 1 : -1;

}

return $this;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值