在php7中MongoDB实现模糊查询的方法详解
php  /  管理员 发布于 7年前   324
前言 在实际开发中, 有不少的场景需要使用到模糊查询, MongoDB shell 模糊查询很简单: 上面这句就是查询_id以'5101'开始的内容。 在老的MogoDB中模糊查询挺简单的,这里简单记录下模糊查询的操作方式: 命令行下: php操作 下面主要就讲下新PHP驱动中怎么查询: 上面就是新驱动中执行模糊查询, 说实话, 挺吐槽这个新驱动, 相比老的驱动, 这个函数名也太长了吧。。。都快超过swift的函数名了。而且老驱动上的不少功能都在新驱动上干掉了。虽然提供了一个 上面吐槽吐的有点跑题了, 除了直接模糊查询, 在和 如果你像上面那么写filter的话, 执行的时候将抛出一个致命错误: 这里说 但是不幸的是, 还是无法成功的得到想要的结果: 这里说 这次终于得到我们想要的结果了。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对AIDI的支持。db.collection.find({'_id': /^5101/})
db.letv_logs.find({"ctime":/uname?/i});
$query=array("name"=>new MongoRegex("/.*”.$name.".*/i"));$db->find($query);
$query = new \MongoDB\Driver\Query('_id' => ['$regex' => '^5101']);$this->getManager()->executeQuery($this->dbname . $this->collection, $query);
mongodb php library
的类库来操作, 但是这个库里面有60多个文件,有时候比我项目文件还要多,这是闹哪样。这我建议自己去封装一个Driver类来使用。$in
或$nin
使用的时候, 需要特别注意下:$filter = ['_id' => ['$in' => ['$regex' => '^5101']]];
PHP Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: $in needs an array in filename
$in
里面需要提供一个数组, 那么我们把上面的$filter
改下, 给它弄个数组过去:$filter = ['_id' => ['$in' => [['$regex' => '^5101']]];
PHP Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: cannot nest $ under $in in filename
$in
中不能出现$, 那咋办呢? 其实在$in
或$nin
中要使用模糊匹配, 需要使用\MongoDB\BSON\Regex
类的实例:$filter = ['_id' => ['$in' => [new \MongoDB\BSON\Regex('^5101','i')]]];
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号