云数据库 字段是数组,数组中是否包含某个值,在where中如何写
看文档里
const _ = db.command
db.collection('todos').where({ progress: _.in([0, 100])
})
.get({ success: console.log, fail: console.error
})
它是字段是否在数组中,和我的需求相反
框架类型 | 问题类型 | 终端类型 | AppID | 基础库版本 |
---|---|---|---|---|
小程序 | 需求 | 客户端 | wxf236bb2b677a72f3 | 2.3.0 |
2 个回答
暂不支持,我们后续会提供相应 API,敬请关注
例如:
记录 {
follows: [
'oghiH5P429sDBnYBymfFqLcUXXXA',
'oghiH5P429sDBnYBymfFqLcUXXXB',
]
}
安全规则 {
"read": "auth.openid in doc.follows",
"write": false
}
查询
db.collection('task').where({
follows: 'oghiH5P429sDBnYBymfFqLcUXXXB'
})
.get()
.then(res => console.log(res.data))
.catch(error => console.log)
报权限错误
Error: errCode: -502003 database permission denied | errMsg: Permission denied
// 安全规则
{
"read": "auth.openid == doc.follows",
"write": false
}
字段值是数组的,不仅无法查是否包含某值,其它条件查询也表现得很奇怪。比如某记录有字段,v:["a","b"],当查询条件为{v:"a"},或{v:"b"},或{v:_.eq("a")},或{v:_.eq("b")}都能查到它。注:其中 _ = db.command。甚至查询条件里同时用{v:"a",v:"b"}或同时用{v:_.eq("a"),v:_.eq("b")}也能查到。