PHP7/5中 MongoDB的正则匹配操作

24 篇文章 0 订阅

PHP5和PHP7对MongoDB 的扩展是不一样的! 即使熟练mongodb的shelll命令查找数据,也不一定会用PHP操作MongoDB。形式上有些差异。
如下是几个参考文档链接。
- MongoDB官网PHP7示例: https://docs.mongodb.com/php-library/master/tutorial/crud/
- PHP官网PHP7 MongoDB 扩展说明文档:http://php.net/manual/zh/book.bson.php
- PHP官网PHP5 MongoDB 扩展说明文档:http://php.net/manual/zh/class.mongoclient.php

一、PHP7 操作MongoDB

1.以下操作中包含对字段进行正则查询!网上少见。

//new 一个Client 并选择数据库和集合
$collection = new \MongoDB\Client("mongodb://用户:密码@dmongodb地址/"))->selectDatabase('your_database')->selectCollection('your_collection');
$searchKey = "mike";
$query = [];
//字段'$regex'的值为正则表达式。
$query ['name'] = [
                    '$regex' => '.*'. $searchKey . '.*',
                    '$options' => 'i'
                ];
//查询设置。skip和limit可用来做分页,意义与muysql中一致。               
$options       = [
                    'skip'=>8,
                    'limit'=>10,
                    'sort'=>['_id'=> -1]
                ];
$cursor = $collection->find($query,$options);
  • 以上语句将会在数据库 your_database 中的 your_collection 集合查找:”name” 字段中包含有“mike”字符的数据,并且按照字段“_id”倒序,跳过前8条,获取10条数据。注意!$cursor是一个游标。

二、PHP5中使用正则查询

$collection  = new MongoClient("mongodb://用户:密码@mongodb地址")->selectDB("data")->selectCollection("collection");
$query        = [];
//new MongoRegex类时传入参数为正则表达式
$query['$or'] = [
                    ['name'=>new MongoRegex("/.*".jack.".*/i")],
                    ['info'=>new MongoRegex("/.*".jane.".*/i")],
                ];
$cursor  = $collection->find($query)->sort(['_id'=>-1])->skip(8)->limit(10);
  • 在数据库data的collection集合中查找 “name”字段包含有jack或者“info”字段包含有jane的数据,咱以“_id”字段降序,跳过前8条取10条。由此可见P7和P5中使用MongoDB形式上有所不同。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值