const db = wx.cloud.database();
const _ = db.command;
command 指令
查询指令
eq 严格相等,表示字段等于某值
neq 严格不相等,表示字段不等于某值
lt 表示小于某个值
lte 表示小于等于某个值
gt 表示大于某个值
gte 表示大于等于某个值
in 查询筛选条件,表示字段的值需在给定的数组内。
如:查找北京和上海的文章,article: _.in(["北京", "上海"])
and 查询指令,用于表示逻辑“与”的关系,表示需同时满足多个查询筛选条件。
如:查询16-19岁的人,age: _.gte(16).and(_.lte(19)) 或 _.and(_.gte(16), _.lte(30))
or 查询指令,用于表示逻辑“或”的关系,表示需同时满足多个查询筛选条件。
两种用法:
1.可以进行字段值的“或”操作,比如获取年龄>18或者年龄<12的人,_.or(_.gt(18), _.lt(12))
2.可以进行跨字段的“或”操作,且where()中无需写{},直接写where(_.or())即可
如:获取2022年的文章或者标题中包含“2022”的文章:
_.or([ { date: _.gte(new Date("2022-01-01")) }, { title: /2022/ } ])
更新指令
set 更新指令,用于设定字段等于指定值。
remove 更新指令,用于表示删除某个字段。
如:删除author对象中的age,author: { age: _.remove() }
inc 更新指令,用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:
1. 原子性:多个用户同时写,对数据库来说都是将字段+1,不会有后来者覆写前者的情况。
2. 减少一次网络请求,不需要先读再写。
mul 更新指令,自乘,原理和inc一样。
数组处理相关指令:
push: 更新指令,对一个值为数组的字段,往末尾添加一个或多个值,或字段原为空,则创建该字段并设为数组为传入值。
pop: 更新指令,对一个值为数组的字段,将数组末尾元素删除。
shift:更新指令,对一个值为数组的字段,将数组首位元素删除。
unshift:更新指令,对一个值为数组的字段,往首位添加一个或多个值。或字段原为空,则创建该字段并设为数组为传入值。