云开发中如何筛选某个字段的结果为/不为空白字符串

583 阅读2分钟

需求描述

有些时候,我们会在数据中添加一些字段,用于特殊场景下的描述、配置等。在添加数据的时候,可能用户会忘记输入对应的内容,导致对应的字段虽然存在,但是其内容为空。比如,正常和错误的数据可能分别是这样的

// 正确的数据, tags 的结果是一个字符串

{
    "tags":"ABC"
}

// 错误的数据, tags 的结果是一个空字符串

{
    "tags":""
}

在实际的使用过程中,我们可能希望筛选出所有 tags 的结果不为空字符串的结果,或者相反,具体应该如何实现呢?

解决方案

查询出所有的字段为空字符串的数据

出于管理的考虑,你可能会希望实现将所有的字段为空的数据查询。如果你想要查询出所有 tags 为空的结果,有两种方法:

  1. 直接使用 where 条件查询
  2. 使用云开发数据库命令中的 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()

总结

在小程序·云开发中,实现一些特殊功能的时候,你可以考虑借助小程序·云开发的数据库命令的方法,实现各种不同的功能。