评论

云开发数据库命令之存在判断

云开发数据库命令之存在判断

在上一节课中,我们介绍的云开发数据库命令中的大小对比的命令,在这节课,我们将会关注数组这一数据类型的判断。我们将会用两组命令,来学习如何判断一个字段是否存在。

in 与 nin

innin,用于判断数组内是否有对应的条目,从而进行数据查询。一个典型的场景是我们在数据中有一个字段 tags,其中存储了数据的不同的 tag当我们需要查询某个特定的 tag 时,我们就可以执行如下的查询,来查询出所有数据中包含特定条目的数据。

const _ = db.command
db.collection('items').where({
  progress: _.in(['tag1'])
})
.get()

如果我们需要实现不包含某个条目的数据,只需要将其中的 in 换成 nin 即可。

exist

exist 则是用于判断某一个字段是否存在。举个例子来说明,比如我们的小程序的数据分为不同的版本,不同的版本都在一个条目中,但是不同的版本所用到的字段不同。

那么我们在开发的时候,就可以根据小程序的版本不同,筛选出所有符合当前版本需求的数据,举个例子,我们希望筛选出所有包含 v4 这个字段的数据,则其代码如下:

const _ = db.command
db.collection('items').where({
  v4: _.exists(true)
})
.get()

与之类似的,如果我们希望筛选出所有不包含 v4 这个字段的数据,只需要将上方代码中的 true 修改为 false 即可。

总结

在这节课程中,我们介绍了 inninexist 所适合的场景,你可以根据自己的实际情况,选择不同场景下的数据来进行处理,查询。如果你在使用过程中有任何问题,都可以在下方留言。

最后一次编辑于  09-25  (未经腾讯允许,不得转载)
点赞 0
收藏
评论

2 个评论

  • 小沙
    小沙
    10-09

    不支持exists啊

    10-09
    赞同
    回复 4
    • 白宦成
      白宦成
      10-10
      版本2.8.3 以上才行
      10-10
      回复
    • 小沙
      小沙
      星期五 15:18回复白宦成
      请问一下要怎么更新,我的IDE已经是最新的啊
      星期五 15:18
      回复
    • 小沙
      小沙
      星期五 15:19回复白宦成
      我是在云开发中试了不行
      星期五 15:19
      回复
    • 小沙
      小沙
      星期五 15:26回复白宦成
      在开发者工具中试了可以,在云开发的数据库中的模板试了不行
      星期五 15:26
      回复
  • 老张
    老张
    09-25

    exists已经支持了吗?有文档链接吗?

    现在的云开发功能升级怎么都悄没声的?

    09-25
    赞同
    回复