收藏
回答

小程序云开发数组模糊查询如何实现?

数据结构如图:

注:商品表goods包含两个对象,对应category_name字段“新品”和“轻奢”。字段category_good是一个数组。里面包含3个对象的商品信息。

需求:前端通过用户输入的内容text,模糊查询category_good里面desc字段或者title字段包含text的数据。例如:用户输入”描述“两个字,
应该给我返回新品里面下标为01这两条数据,而不是整个新品里面三条数据都给我返回了。
exports.main = async (event, context) => {
  return await db.collection('goods').where({
    'category_good.desc':db.RegExp({
      regexp: '描述',
      options: 'i',
    })
  }).get()
}
返回结果:

理想结果应该是新品只匹配中两条,显然不符。


exports.main = async (event, context) => {
  return await db.collection('goods').aggregate()
  .project({
    category_good: $.filter({
      input: '$category_good',
      as'item',
      cond: $.eq(['$$item.desc',"我是描述"])
    })
  })
  .end()
}
返回结果:

结果是对的,但是这样写只能匹配相等的,不能做模糊查询。另外能不能把返回的结果全放在一个数组里,而不是这种数组里面有对象,对象里面又有数组

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

1 个回答

  • 跨商通
    跨商通
    2023-09-03
    .aggregate()
    .unwind()
    .match()
    


    2023-09-03
    有用
    回复
登录 后发表内容