9***@qq.com
9***@qq.com
  • 发布:2024-04-10 09:26
  • 更新:2024-04-10 10:43
  • 阅读:411

uniclound 如何查询一个表中某个数组字段不包含某个元素

分类:uniCloud

比如一个表每项数据包含一个数组字段A

A :[’1‘,’2‘,‘4’]

想要查询获取到A字段的数组中,不包含‘3’的数据

2024-04-10 09:26 负责人:无 分享
已邀请:
yuhespace

yuhespace - Yule

用js相关语法查询即可啊

  • 9***@qq.com (作者)

    大佬你好,我的场景原本就是where之后接update

    你意思是我where后先get查到数据回来,然后我js语法做检验,

    然后再判断是否要update?

    这是不是会多了一个请求

    2024-04-10 10:40

套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

  • 9***@qq.com (作者)

    大佬你好,这个不是查A的值在不在我提供的数组范围内吗?比如where({A:cmd.nin([3,4,5])}),这样是判断A值是否在【3,4,5】内,不是我想要的判断A数组是否包含我传入的数据吧

    2024-04-10 10:38

HRK_01

HRK_01

const res = await uniCloud.database().collection('表名').where(${new RegExp("^(?!.*3).*$")}.test(A)).get()

  • 9***@qq.com (作者)

    大佬你好,感谢你指引,这里正则中的3,是不是就是我想搜索A中是否包含的3这个字符串?

    2024-04-10 10:45

  • HRK_01

    回复 9***@qq.com: 我是根据你题目来写的,搜索A字段中排除包含3的字符串,如果想要找到包含3的字符串,则应该改为const res = await uniCloud.database().collection('表名').where(${new RegExp("3")}.test(A)).get()。自行验证即可,下面是文档链接:文档

    2024-04-10 10:48

  • 9***@qq.com (作者)

    回复 HRK_01:感激大佬帮助

    2024-04-10 10:52

  • 9***@qq.com (作者)

    回复 HRK_01: 老哥再问一下,假设我where的条件里有两个字段,下面写法是不是有问题,我预期是想找出_id为uid的,且arr数组中不包含“aaa”字符串的

    where({

    _id:uid,

    arr:/^((?!aaa).)*$/g

    })

    2024-04-10 13:29

要回复问题请先登录注册