最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在php7中MongoDB實(shí)現(xiàn)模糊查詢(xún)的方法詳解

 更新時(shí)間:2017年05月03日 09:04:48   投稿:daisy  
MongoDB模糊查詢(xún)語(yǔ)句相信對(duì)大家來(lái)說(shuō)都不陌生,這篇文章主要給大家介紹了在php 7中MongoDB實(shí)現(xiàn)模糊查詢(xún)的方法,文中給出了詳細(xì)的介紹和示例代碼,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友一起來(lái)看看吧。

前言

在實(shí)際開(kāi)發(fā)中, 有不少的場(chǎng)景需要使用到模糊查詢(xún), MongoDB shell 模糊查詢(xún)很簡(jiǎn)單:

db.collection.find({'_id': /^5101/}) 

上面這句就是查詢(xún)_id以'5101'開(kāi)始的內(nèi)容。

在老的MogoDB中模糊查詢(xún)挺簡(jiǎn)單的,這里簡(jiǎn)單記錄下模糊查詢(xún)的操作方式:

命令行下:

db.letv_logs.find({"ctime":/uname?/i});

php操作

$query=array("name"=>new MongoRegex("/.*”.$name.".*/i"));
$db->find($query);

下面主要就講下新PHP驅(qū)動(dòng)中怎么查詢(xún):

$query = new \MongoDB\Driver\Query('_id' => ['$regex' => '^5101']);
$this->getManager()->executeQuery($this->dbname . $this->collection, $query);

上面就是新驅(qū)動(dòng)中執(zhí)行模糊查詢(xún), 說(shuō)實(shí)話(huà), 挺吐槽這個(gè)新驅(qū)動(dòng), 相比老的驅(qū)動(dòng), 這個(gè)函數(shù)名也太長(zhǎng)了吧。。。都快超過(guò)swift的函數(shù)名了。而且老驅(qū)動(dòng)上的不少功能都在新驅(qū)動(dòng)上干掉了。雖然提供了一個(gè)mongodb php library的類(lèi)庫(kù)來(lái)操作, 但是這個(gè)庫(kù)里面有60多個(gè)文件,有時(shí)候比我項(xiàng)目文件還要多,這是鬧哪樣。這我建議自己去封裝一個(gè)Driver類(lèi)來(lái)使用。

上面吐槽吐的有點(diǎn)跑題了, 除了直接模糊查詢(xún), 在和$in$nin使用的時(shí)候, 需要特別注意下:

$filter = ['_id' => ['$in' => ['$regex' => '^5101']]];

如果你像上面那么寫(xiě)filter的話(huà), 執(zhí)行的時(shí)候?qū)伋鲆粋€(gè)致命錯(cuò)誤:

PHP Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: $in needs an array in filename

這里說(shuō)$in里面需要提供一個(gè)數(shù)組, 那么我們把上面的$filter改下, 給它弄個(gè)數(shù)組過(guò)去:

$filter = ['_id' => ['$in' => [['$regex' => '^5101']]];

但是不幸的是, 還是無(wú)法成功的得到想要的結(jié)果:

PHP Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: cannot nest $ under $in in filename

這里說(shuō)$in中不能出現(xiàn)$, 那咋辦呢? 其實(shí)在$in$nin中要使用模糊匹配, 需要使用\MongoDB\BSON\Regex類(lèi)的實(shí)例:

$filter = ['_id' => ['$in' => [new \MongoDB\BSON\Regex('^5101','i')]]];

這次終于得到我們想要的結(jié)果了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

乐山市| 湖北省| 昌吉市| 临城县| 成安县| 宝兴县| 武安市| 探索| 昂仁县| 弥勒县| 麻江县| 宣化县| 阿鲁科尔沁旗| 云梦县| 西昌市| 澄江县| 曲阜市| 正安县| 海宁市| 东城区| 林甸县| 通化县| 甘洛县| 衡山县| 若尔盖县| 光山县| 乌海市| 崇信县| 南川市| 诸城市| 莎车县| 山东| 柳江县| 玉田县| 迁西县| 台北县| 济宁市| 侯马市| 忻州市| 兴仁县| 江孜县|