今天來給你們講講小程序的搜索功能。我這裏後臺數據庫用的是小程序雲開發的雲數據庫。因此咱們搜索的時候就要藉助雲開發來實現。html
好比我這裏有以下的一些數據
數據庫
咱們想實現以下搜索需求小程序
咱們知道數據庫查詢的時候有個where語句,可是where語句是查詢某個字段所有包含你輸入的內容時才能夠,因此單純用where語句來作搜索的話,結果太單一。因此咱們今天就來學習下模糊搜索功能的實現。咱們以上面三個需求爲例,來一個個講解。api
咱們作模糊搜索的時候,其實就是查詢某個字段裏是否包含咱們的搜索詞。而模糊搜索須要藉助RegExp,來看看RegExp是什麼。
官方文檔:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Database.RegExp.htmlide
代碼以下
查詢結果以下:
能夠看到咱們成功的查詢到了標題裏包含‘小石頭的數據’學習
因爲咱們要查詢多個字段,因此咱們這裏用到了command高級操做符裏的or
代碼以下:
查詢結果:
咱們來分析下這兩條數據3d
因爲咱們要查詢多個字段,因此咱們這裏用到了command高級操做符裏的and
code
代碼以下:
regexp
查詢結果:
咱們來分析下這兩條數據視頻
3,title和desc裏都沒有‘小石頭’,因此也不符合。
爲例方便你們使用,我把完整的代碼貼到這裏,後面你們使用時,直接複製這裏的代碼,略微改造下就能夠了。
//我這裏簡單起見就把搜索詞寫死,正常應該用戶輸入的 let searchKey = '小石頭' let db = wx.cloud.database() let _ = db.command db.collection('news') .where(_.or([ {//標題 title: db.RegExp({ //使用正則查詢,實現對搜索的模糊查詢 regexp: searchKey, options: 'i', //大小寫不區分 }), }, {//描述 desc: db.RegExp({ regexp: searchKey, options: 'i', }), } ])).get() .then(res => { console.log('查詢成功', res) }) .catch(res => { console.log('查詢失敗', res) })
到這裏就講完了,我後面會專門在雲開發入門的課程裏做爲實戰案例錄製視頻給到你們的:
《小程序雲開發入門視頻》