91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php7項目中使用MongoDB實現一個模糊查詢功能

發布時間:2020-12-23 16:13:51 來源:億速云 閱讀:317 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在php7項目中使用MongoDB實現一個模糊查詢功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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

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

上面這句就是查詢_id以'5101'開始的內容。

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

命令行下:

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

php操作

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

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

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

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

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

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

如果你像上面那么寫filter的話, 執行的時候將拋出一個致命錯誤:

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')]]];

上述內容就是怎么在php7項目中使用MongoDB實現一個模糊查詢功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

搜索| 四子王旗| 霍山县| 西吉县| 建始县| 宁国市| 洛川县| 昌乐县| 石狮市| 宜兰县| 新野县| 尉犁县| 仙桃市| 千阳县| 连云港市| 吉首市| 蓝田县| 兴隆县| 东阿县| 临高县| 泽库县| 桃园市| 娱乐| 二连浩特市| 大田县| 瑞金市| 江陵县| 崇阳县| 浦东新区| 饶阳县| 清原| 洪江市| 博客| 民勤县| 衡南县| 乳山市| 巴里| 青海省| 微山县| 江华| 海伦市|