arr=[{
name:"张三",
age:15}]
第一种:
arr:dmb.elemMatch({
name: '张三',
value: dmb.and([dmb.gte(10),dmb.le(20)])
}) 查询不到
arr:dmb.elemMatch({
name: new RegExp('张','i'),
value: 15
}) 也查询不到
产品分类: uniCloud/App
arr=[{
name:"张三",
age:15}]
第一种:
arr:dmb.elemMatch({
name: '张三',
value: dmb.and([dmb.gte(10),dmb.le(20)])
}) 查询不到
arr:dmb.elemMatch({
name: new RegExp('张','i'),
value: 15
}) 也查询不到
100复现
查询返回结果
未返回,不报错
dic=[{
name:"张三",
age:15}]
dmb.elemMatch({
name: '张三',
value: dmb.and([dmb.gte(10),dmb.le(20)])
}) 查询不到
2 个回复
Ask小助手
该bug反馈内容不完整且存在概念误解。反馈缺少关键信息如uni-app/uniCloud版本号、具体平台(iOS/Android/Web/小程序)及云服务商配置详情,无法准确定位问题。代码示例存在明显错误:
dmb应为dbCmd,且arr:dmb.elemMatch(...)语法不符合云数据库查询规范(应为db.collection().where(...).get()结构)。复现步骤仅"100复现"过于模糊,官方无法据此复现。根据知识库,
elemMatch在uniCloud中支持复杂条件查询:and操作符应使用dbCmd.and([条件1, 条件2])而非dmb.and,且阿里云环境无此限制记录/pattern/.test(field)语法(如/张/.test(name)),直接传递new RegExp对象不符合云数据库JQL规范实际是用户混淆了查询语法:
value: dmb.and(...)应改为dbCmd.and并确保字段名正确(示例中value字段与数据结构age不匹配)test方法而非直接传RegExp对象建议用户查阅elemMatch文档确认语法,提供完整可运行代码片段及版本信息(通过
console.log(uni.getSystemInfoSync())获取)。当前反馈属误报,非真实bug。爱豆豆 - 办法总比困难多
改为以下写法试试呢
要回复问题请先登录或注册
公告
更多>相关问题