收藏
回答

微信小程序云开发,对象数组条件查询结果没有筛选,全量返回了?

第一种写法:

const db = wx.cloud.database()

const _ = db.command

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

list:{

kind:'根茎类'

}

}).get({

success: res => {

console.log("res:", res.data)

},

fail: err => {

console.log("error:", err)

}

})

第二种写法:

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

list:_.elemMatch({

kind:'根茎类'

}) 

}).get({

})

都是全量返回,筛选条件没起作用!求官方同学尽快帮忙解决一下

最后一次编辑于  04-30
回答关注问题邀请回答
收藏

4 个回答

  • CRC
    CRC
    09-15
            const db = wx.cloud.database();      
            const _=db.command;
        const $ = db.command.aggregate;
    
    
        db.collection('xxx').aggregate()
          .project({
            list: $.filter({
              input: '$list',
              as'item',
              cond: $.eq(['$$item.kind','根茎类'])
            })
          }).end({
            success(res){
              console.log(res)
            }
          });
    
    09-15
    有用
    回复 1
    • CRC
      CRC
      09-15
      注意: 小程序基础库2.7.4以上
      09-15
      回复
  • 念
    05-13


    这个可以 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/aggregate/AggregateCommand.filter.html
    


    05-13
    有用
    回复 1
  • 🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
    🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
    05-06

    这是之前写的,没研究过elemMatch,你参考下

    05-06
    有用
    回复 1
    • SOMETIMES
      SOMETIMES
      05-06
      问题就是 elemMatch 不起作用,对一个对象数组进行筛选
      05-06
      回复
  • wang li
    wang li
    05-02

    你要返回什么哦,按照你的条件,就是返回vegetable_list这个集合,所有包含list:{kind:'根茎类'}的记录,res.data是包含完整记录的数组,如果你要某个字段的内容,应该是这样res.data[0].list

    05-02
    有用
    回复 18
    • SOMETIMES
      SOMETIMES
      05-02
      我想筛选 kind = '根茎类' 的数据,过滤掉其他
      05-02
      回复
    • Eigene
      Eigene
      05-02回复SOMETIMES
      楼主解决了没,我也遇的这个问题
      05-02
      回复
    • SOMETIMES
      SOMETIMES
      05-02
      还没有,你帮忙邀请一下大牛回答,我一天只能邀请两个人
      05-02
      回复
    • JokerX
      JokerX
      05-02
      我也遇到了这个问题,我都怀疑是我的数据库数据划分的不够科学= =导致没有办法可以筛选出这种结果
      05-02
      回复
    • wang li
      wang li
      05-02回复SOMETIMES
      只是要显示LIST数组里的内容吗,可以用WX:IF渲染,我只会这个
      05-02
      回复
    查看更多(13)
登录 后发表内容
问题标签