云开发中如何筛选某个字段的结果为/不为空白字符串
需求描述
有些时候,我们会在数据中添加一些字段,用于特殊场景下的描述、配置等。在添加数据的时候,可能用户会忘记输入对应的内容,导致对应的字段虽然存在,但是其内容为空。比如,正常和错误的数据可能分别是这样的
// 正确的数据, tags 的结果是一个字符串
{
"tags":"ABC"
}
// 错误的数据, tags 的结果是一个空字符串
{
"tags":""
}
在实际的使用过程中,我们可能希望筛选出所有 tags 的结果不为空字符串的结果,或者相反,具体应该如何实现呢?
解决方案
查询出所有的字段为空字符串的数据
出于管理的考虑,你可能会希望实现将所有的字段为空的数据查询。如果你想要查询出所有 tags
为空的结果,有两种方法:
- 直接使用 where 条件查询
- 使用云开发数据库命令中的
eq
来进行查询
具体代码示例如下:
// 直接使用 where 查询
db.collection("items").where({
tags:""
}).get()
// 不使用 where 查询
let _ = db.command;
db.collection("items").where({
tags:_.eq('')
}).get()
上述两种方法的效果相同,都可以实现在小程序中查询。
查询出所有的字段不为空字符串的数据
和管理端不同,用户端可能主要是展示给普通用户的,可能需要展示特定字段不为空的数据,那么,就可以考虑类似的方式,来查询出所有的字段不为空字符串的数据。
具体的代码示例如下:
let _ = db.command;
db.collection("items").where({
tags:_.neq('')
}).get()
总结
在小程序·云开发中,实现一些特殊功能的时候,你可以考虑借助小程序·云开发的数据库命令的方法,实现各种不同的功能。