最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

小程序搜索功能,云開(kāi)發(fā)搜索,小程序云開(kāi)發(fā)模糊搜索,同時(shí)搜索多個(gè)字段

2021-02-08 12:34 作者:編程小石頭  | 我要投稿

今天來(lái)給大家講講小程序的搜索功能。我這里后臺(tái)數(shù)據(jù)庫(kù)用的是小程序云開(kāi)發(fā)的云數(shù)據(jù)庫(kù)。所以我們搜索的時(shí)候就要借助云開(kāi)發(fā)來(lái)實(shí)現(xiàn)。

一,需求

比如我這里有如下的一些數(shù)據(jù)

我們想實(shí)現(xiàn)如下搜索需求

  • 1,搜索標(biāo)題(title)包含‘小石頭’的數(shù)據(jù)

  • 2,搜索標(biāo)題(title)或者描述(desc)包含‘小石頭’的數(shù)據(jù)

  • 3,搜索標(biāo)題(title)描述(desc)都包含‘小石頭’的數(shù)據(jù)

我們知道數(shù)據(jù)庫(kù)查詢的時(shí)候有個(gè)where語(yǔ)句,但是where語(yǔ)句是查詢某個(gè)字段全部包含你輸入的內(nèi)容時(shí)才可以,所以單純用where語(yǔ)句來(lái)做搜索的話,結(jié)果太單一。所以我們今天就來(lái)學(xué)習(xí)下模糊搜索功能的實(shí)現(xiàn)。我們以上面三個(gè)需求為例,來(lái)一個(gè)個(gè)講解。

二,實(shí)現(xiàn)原理

我們做模糊搜索的時(shí)候,其實(shí)就是查詢某個(gè)字段里是否包含我們的搜索詞。而模糊搜索需要借助RegExp,來(lái)看看RegExp是什么。


官方文檔:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Database.RegExp.html

  • 再來(lái)看看官方示例


  • 可能看官方示例會(huì)有點(diǎn)糊涂,那么我們接下來(lái)就結(jié)合具體代碼來(lái)給大家做下講解。

三,模糊搜索的代碼實(shí)現(xiàn)

3-1,模糊搜索單個(gè)字段

  • 需求:搜索標(biāo)題(title)包含‘小石頭’的數(shù)據(jù)

代碼如下


查詢結(jié)果如下:


可以看到我們成功的查詢到了標(biāo)題里包含‘小石頭的數(shù)據(jù)’

3-2,模糊搜索多個(gè)字段(滿足一個(gè)即可)

  • 需求:搜索標(biāo)題(title)或者描述(desc)包含‘小石頭’的數(shù)據(jù)

由于我們要查詢多個(gè)字段,所以我們這里用到了command高級(jí)操作符里的or


代碼如下:


查詢結(jié)果:


我們來(lái)分析下這兩條數(shù)據(jù)

  • 1,標(biāo)題和描述都包含‘小石頭’,符合

  • 2,雖然標(biāo)題里沒(méi)有‘小石頭’,但是描述里有,所以也符合。

  • 3,title和desc里都沒(méi)有‘小石頭’,所以不符合。

3-3,模糊搜索多個(gè)字段(要同時(shí)滿足)

  • 需求:搜索標(biāo)題(title)描述(desc)都包含‘小石頭’的數(shù)據(jù)

由于我們要查詢多個(gè)字段,所以我們這里用到了command高級(jí)操作符里的and

代碼如下:

查詢結(jié)果:


我們來(lái)分析下這兩條數(shù)據(jù)

  • 1,標(biāo)題和描述都包含‘小石頭’,符合

  • 2,雖然desc里沒(méi)有‘小石頭’,但是title里沒(méi)有,所以也不符合。

  • 3,title和desc里都沒(méi)有‘小石頭’,所以也不符合。

四,源碼

為例方便大家使用,我把完整的代碼貼到這里,后面大家使用時(shí),直接復(fù)制這里的代碼,略微改造下就可以了。

? ?//我這里簡(jiǎn)單起見(jiàn)就把搜索詞寫死,正常應(yīng)該用戶輸入的 ? ?let searchKey = '小石頭' ? ?let db = wx.cloud.database() ? ?let _ = db.command ? ?db.collection('news') ? ? ?.where(_.or([ ? ? ? ?{//標(biāo)題 ? ? ? ? ?title: db.RegExp({ //使用正則查詢,實(shí)現(xiàn)對(duì)搜索的模糊查詢 ? ? ? ? ? ?regexp: searchKey, ? ? ? ? ? ?options: 'i', //大小寫不區(qū)分 ? ? ? ? ?}), ? ? ? ?}, ? ? ? ?{//描述 ? ? ? ? ?desc: db.RegExp({ ? ? ? ? ? ?regexp: searchKey, ? ? ? ? ? ?options: 'i', ? ? ? ? ?}), ? ? ? ?} ? ? ?])).get() ? ? ?.then(res => { ? ? ? ?console.log('查詢成功', res) ? ? ?}) ? ? ?.catch(res => { ? ? ? ?console.log('查詢失敗', res) ? ? ?})

到這里就講完了,我后面會(huì)專門在云開(kāi)發(fā)入門的課程里作為實(shí)戰(zhàn)案例錄制視頻給到大家的:
https://edu.csdn.net/course/detail/26572


小程序搜索功能,云開(kāi)發(fā)搜索,小程序云開(kāi)發(fā)模糊搜索,同時(shí)搜索多個(gè)字段的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
修水县| 安达市| 昆明市| 富平县| 临澧县| 盐亭县| 乃东县| 平泉县| 富蕴县| 遂川县| 封开县| 六安市| 双柏县| 崇文区| 庆安县| 济源市| 顺义区| 弋阳县| 湄潭县| 轮台县| 石柱| 金坛市| 石渠县| 宁蒗| 花莲市| 新民市| 台东县| 攀枝花市| 舟曲县| 叶城县| 罗江县| 桐乡市| 高密市| 盱眙县| 临海市| 黄浦区| 凌源市| 奉化市| 杭锦旗| 凤阳县| 沐川县|