网站建设 中企动力 东莞,中国站长素材网,蜜芽tv跳转接口点击进入网页,谷歌广告4.2 云开发JSON数据库
4.2.9 条件查询与查询指令
在查询数据时#xff0c;有时需要对查找的数据添加一些限定条件#xff0c;只获取满足给定条件的数据#xff0c;这样的查询称为条件查询。
可以在集合引用上使用where方法指定查询条件#xff0c;再用get方法#xff0…4.2 云开发JSON数据库
4.2.9 条件查询与查询指令
在查询数据时有时需要对查找的数据添加一些限定条件只获取满足给定条件的数据这样的查询称为条件查询。
可以在集合引用上使用where方法指定查询条件再用get方法即可只返回满足指定查询条件的记录。
如果想要获取某个用户的所有未完成的待办事项可以使用以下代码 db.collection(testOne).add({data:{done:false,myName:42}}) //添加未完成事项的记录 db.collection(testOne).add({data:{done:true,myName:43}}) //添加已完成事项记录的记录 db.collection(testOne).where({ _openid: user-open-id , //指定用户的ID大家换成自己的openid done:false //指定未完成的事项 }).get().then(res { console.log(res.data) })
预览效果如下 where方法接受一个对象参数对象每个字段间的关系是“与”的关系即需要同时满足这些匹配条件。在这个例子里就是查询出_openid等于user-open-id且done等于false的记录。
想以“大于”“小于”或是“数组中是否包含某元素”作为条件可以使用查询指令构造出复杂的查询条件。查询指令时数据库API的函数被封装在db.command对象。
例如希望查询进度小于50%的待办事项可以使用以下代码 db.collection(testOne).add({data:{progress:49}}) db.collection(testOne).add({data:{progress:50}}) db.collection(testOne).add({data:{progress:51}}) db.collection(testOne).where({ progress: db.command.lt(50) //使用db.command.lt限定progress字段的值小于50的条件 }).get().then(res { console.log(res.data) })
db.command()对象中提供的查询指令如下所示
eq 等于
neq 不等于
lt 小于
lte 小于或等于
gt 大于
gte 大于或等于
in 字段值在给定数组中
nin 字段值不在给定数组中
and 条件与 需同时满足满足另一个条件
or 条件或 满足任何一个条件即可 and和or是逻辑指令。需要对多个添加同时进行判断时可以使用。
用and逻辑指令查询进度在20%-80%的待办事项代码如下 db.collection(testOne).add({data:{progress:21}}) db.collection(testOne).add({data:{progress:81}}) db.collection(testOne).where({ progress: db.command.gte(20).and(db.command.lte(80)) }).get().then(res { console.log(res.data) })
用and做指令时可以把它紧跟在其他查询指令后可以传入另一个查询指令作为参数。
or指令也是一样的用法。
or指令可以对不同的字段进行条件查询如查询询进度小于50%的待办事项或截止日期在今天之后的待办事项代码如下 var date1 new Date() db.collection(testOne).add({data:{progress:49,due:date1}}) date1.setDate(date1.getDate() 1) db.collection(testOne).add({data:{progress:50,due:date1}}) date1.setDate(date1.getDate() - 2) db.collection(testOne).add({data:{progress:51,due:date1}}) db.collection(testOne).where(db.command.or({ progress:db.command.lt(50)
},{ due:db.command.lt(new Date())
})).get().then(res { console.log(res.data)
})
使用and指令也可以对不同的字段进行条件查询但没必要。第一个示例获取某个用户的所有未完成的待办事项就是and的这个用法。 明天学查询数组和对象再见。