laravel-arangodb如何搜索英文不区分大小写

3 篇文章 0 订阅
3 篇文章 0 订阅

laravel-arangodb如何搜索英文不区分大小写

GitHub:https://github.com/LaravelFreelancerNL/laravel-arangodb
以上GitHub是laravel和arangodb数据库的封装,在laravel里arangodb的使用方法,都封装成了laravel原有的语句方法,但是也有一些是不支持的。
arangodb数据库是一个图数据库(非关系型),并非MySQL这种关系型数据库。
arangodb数据的存储没有固定的字段,如缓存一般,下面解决查询时英文不区分大小写。

获取数据个数及查询不区分大小写:

原有的arangodb获取个数地址:https://www.arangodb.com/docs/stable/aql/operations-collect.html

$count = to_array(Store::fromAqb(function ($aqb) use ($args) {    //Store是model,fromAqb是固有方法
	          $aqb_model = $aqb
	              ->for('doc', 'store');
	          if (!empty($args['name']) || $args['name'] === "0") {
	              $aqb_model->filter($aqb->lower('doc.name'),'like','%'.strtolower($args['name']).'%');
	          }
	          if (!empty($args['status'])){
	              $aqb_model->filter('doc.status', '==', $args['status']);
	          }
	          if (!empty($args['type'])){
	              $aqb_model->filter('doc.type','=',strtolower($args['type']));
	          }
	          return $aqb_model->collect()
	              ->with('count')
	              ->into('number')
	              ->return('number');
	      }))[0][0] ?? 0;   
  //查询出的个数跟laravel本身不同,laravel本身直接返回个数,arangodb这种方法返回的是一个只有一组的二维数组,所以取arr[0][0],具体数据自己测试
  //原生查询个数写法(自行对比):
  FOR u IN users
  COLLECT WITH COUNT INTO length
  RETURN length
  //不区分大小写查询,关键词lower
  $aqb_model->filter($aqb->lower('doc.name'),'like','%'.strtolower($args['name']).'%');
  对查询的数据使用strtolower转为小写,本身lower是根据把大写转为小写来查询的

to_array是自己封装的对象转数组,查询出来的都是对象。

备注:

另一种model方法查询:

$aqb = new \LaravelFreelancerNL\FluentAQL\QueryBuilder();
$aqb->for('doc', '表名')
    ->filter([$aqb->lower('doc.xxxx'), 'like', '%zzz%' ])
    ->return('doc');
    $data = to_array(Store::fromAqb($aqb));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值