欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

小程序搜索功能:云開發(fā)搜索和小程序云開發(fā)模糊搜索,同時搜索多個字段 ... - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

小程序搜索功能:云開發(fā)搜索和小程序云開發(fā)模糊搜索,同時搜索多個字段 ...

發(fā)表時間:2021-2-20

發(fā)布人:葵宇科技

瀏覽次數(shù):90

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

一,需求

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

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

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

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


二,實現(xiàn)原理

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

  • 再來看看官方示例

 

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


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

3-1,模糊搜索單個字段

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

代碼如下

   

查詢結(jié)果如下: 

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


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

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

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

代碼如下: 

 

查詢結(jié)果:

   

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

  • 1,標題和描述都包含‘小石頭’,符合
  • 2,雖然標題里沒有‘小石頭’,但是描述里有,所以也符合。
  • 3,title和desc里都沒有‘小石頭’,所以不符合。

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

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

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

代碼如下:

  

查詢結(jié)果:

   

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

  • 1,標題和描述都包含‘小石頭’,符合
  • 2,雖然desc里沒有‘小石頭’,但是title里沒有,所以也不符合。
  • 3,title和desc里都沒有‘小石頭’,所以也不符合。

四,源碼

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

    //我這里簡單起見就把搜索詞寫死,正常應該用戶輸入的
    let searchKey = '小石頭'
    let db = wx.cloud.database()
    let _ = db.command

    db.collection('news')
      .where(_.or([
        {//標題
          title: db.RegExp({ //使用正則查詢,實現(xiàn)對搜索的模糊查詢
            regexp: searchKey,
            options: 'i', //大小寫不區(qū)分
          }),
        },
        {//描述
          desc: db.RegExp({
            regexp: searchKey,
            options: 'i',
          }),
        }
      ])).get()
      .then(res => {
        console.log('查詢成功', res)
      })
      .catch(res => {
        console.log('查詢失敗', res)
      })

相關(guān)案例查看更多