国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-04 23:56:59
字體:
供稿:網(wǎng)友

前言

在實際開發(fā)中, 有不少的場景需要使用到模糊查詢, MongoDB shell 模糊查詢很簡單:

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

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

在老的MogoDB中模糊查詢挺簡單的,這里簡單記錄下模糊查詢的操作方式:

命令行下:

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

php操作

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

下面主要就講下新PHP驅(qū)動中怎么查詢:

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

上面就是新驅(qū)動中執(zhí)行模糊查詢, 說實話, 挺吐槽這個新驅(qū)動, 相比老的驅(qū)動, 這個函數(shù)名也太長了吧。。。都快超過swift的函數(shù)名了。而且老驅(qū)動上的不少功能都在新驅(qū)動上干掉了。雖然提供了一個mongodb/44332.html">mongodb php library的類庫來操作, 但是這個庫里面有60多個文件,有時候比我項目文件還要多,這是鬧哪樣。這我建議自己去封裝一個Driver類來使用。

上面吐槽吐的有點跑題了, 除了直接模糊查詢, 在和$in$nin使用的時候, 需要特別注意下:

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

如果你像上面那么寫filter的話, 執(zhí)行的時候?qū)伋鲆粋€致命錯誤:

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

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

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

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

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

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

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 沂源县| 沈阳市| 阜宁县| 洛扎县| 平潭县| 徐州市| 中宁县| 武隆县| 松滋市| 吉林市| 辰溪县| 明溪县| 夏津县| 思茅市| 军事| 松潘县| 泸水县| 伊宁市| 临武县| 广丰县| 即墨市| 昌平区| 巫溪县| 抚宁县| 仪陇县| 崇礼县| 饶平县| 河间市| 江安县| 宁强县| 聊城市| 新沂市| 沙田区| 娄烦县| 汝州市| 南木林县| 河东区| 鹿泉市| 定兴县| 伊金霍洛旗| 宜州市|