收藏
回答

小程序云开发数据库字段是数组,怎么查询它是否包含某个值

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 需求 工具 wx87d8c6b830c5f2c3 2.6.2

- 需求的场景描述(希望解决的问题)

有一个场景是,我有一个字段是tag(标签),它是数组类型的。数据集合类似下面

```db_collection

user:

{

    name:'小王',

    desc:'大帅逼',

    tags:['高','富','帅']

}

```


有很多这样的数据,每个人的tags不一样,但是我想筛选的时候筛选出所有标签为 '高'的人,那么,在小程序云开发中可以如何实现,网络上的实现,基本找不到,所以求助以下官方

- 希望提供的能力

提供可以查询数组的方法

回答关注问题邀请回答
收藏

4 个回答

  • 邓坤力
    邓坤力
    2019-07-21

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/query-array-object.html

    2019-07-21
    赞同
    回复 2
    • Yrobot
      Yrobot
      2019-07-22
      刚更新的查询能力吗
      2019-07-22
      回复
    • 邓坤力
      邓坤力
      2019-07-22
      一直都可以
      2019-07-22
      回复
  • 果果
    果果
    2019-05-02
    const _ = db.command
    db.collection('user').where({
    
            tags: _.in(['高'])
        
      })
      .get({
        success(res) { console.log(res.data)}

     })

    用这个方法就可以查询到user集合里所有tags:"高"的所有记录


    2019-05-02
    赞同 1
    回复 2
    • 老张
      老张
      2019-05-02

      目测这个不能。

      2019-05-02
      回复
    • 拉风的名字
      拉风的名字
      2019-05-02

      这个应该是不可以的,command.in是筛选范围的

      2019-05-02
      回复
  • 拉风的名字
    拉风的名字
    2019-05-05

    再次求助官方

    2019-05-05
    赞同
    回复
  • 海玄科技
    海玄科技
    2019-05-02
    function query(arr, q) {
      return arr.filter(v => Object.values(v).some(v => new RegExp(q + '').test(v))
      )
    }


    2019-05-02
    赞同
    回复 1
    • 拉风的名字
      拉风的名字
      2019-05-02

      请问这个怎么写在小程序云函数中,暂时没有领悟到使用哪个api,能提供一个完整的例子么

      比如


      db.collection('user').where({

          ...

      }).get()

      2019-05-02
      回复
登录 后发表内容