uni-app 在where中使用正则加dbCmd.eq获取不到数据
uni-app 在where中使用正则加dbCmd.eq获取不到数据
示例代码:
where: {code:dbCmd.and(new RegExp(’^7,1,’),dbCmd.eq(‘7,1,1,’)}
## 操作步骤:
无
## 预期结果:
可以通过确切值及正则获取值
## 实际结果:
获取值
## bug描述:
在where中使用正则加dbCmd.eq获取不到数据
3 回复
不支持这样的写法
更多关于uni-app 在where中使用正则加dbCmd.eq获取不到数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好的,感谢
在使用 uni-app 的 uniCloud 数据库查询时,如果你想在 where 条件中使用正则表达式进行查询,通常需要使用 dbCmd.regex 方法。dbCmd.eq 是用于精确匹配的,不支持正则表达式。
以下是一个使用 dbCmd.regex 进行正则表达式查询的示例:
const db = uniCloud.database();
const dbCmd = db.command;
db.collection('your_collection_name')
.where({
field_name: dbCmd.regex(RegExp('your_regex_pattern'))
})
.get()
.then(res => {
console.log(res);
})
.catch(err => {
console.error(err);
});
解释:
db.collection('your_collection_name'):指定你要查询的集合名称。field_name:你要进行正则匹配的字段名。dbCmd.regex(RegExp('your_regex_pattern')):使用dbCmd.regex方法进行正则匹配,your_regex_pattern是你的正则表达式。.get():执行查询并获取结果。
注意事项:
- 正则表达式:确保你的正则表达式是正确的,并且符合 JavaScript 的正则表达式语法。
- 字段类型:确保你要查询的字段类型是字符串类型,因为正则表达式通常用于字符串匹配。
- 性能:正则表达式查询可能会影响查询性能,尤其是在大数据集上使用时,建议谨慎使用。
示例:
假设你有一个 users 集合,其中有一个 username 字段,你想查找所有用户名以 john 开头的用户,可以使用以下代码:
const db = uniCloud.database();
const dbCmd = db.command;
db.collection('users')
.where({
username: dbCmd.regex(RegExp('^john'))
})
.get()
.then(res => {
console.log(res);
})
.catch(err => {
console.error(err);
});

