栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

微信小程序云开发(2.10)—command 数据库操作符

微信小程序云开发(2.10)—command 数据库操作符

通过db.command获取

const db = wx.cloud.database();
const _ = db.command;         //属性
一、command的比较操作符
  • eq 等于
  • neq 不等于
  • lt 小于
  • lte 小于等于
  • gt 大于
  • gte 大于等于
  • in 要求在数组内的
  • nin 要求不在数组内的

以下例子中,hist是一个表示点击次数的变量

getData(){
        db.collection("demolist")
        .where({
            hist:_.eq(12)   //查询点击次数为12的数据,neq同理
        })
        .get()
        .then(res=>{
            console.log(res)
            //渲染到前端
            this.setData({
                dataList:res.data
            })
        })
    },

in和nin要求值在给定的数组内

        .where({
            hist:_.in([12,55])   //查询点击次数为12和55的数据
        })

注意: in、nin里的数组不是范围,是精确



二、command的逻辑操作符 (1)and和or 1、查询单个字段

需要传入多个查询操作符或常量,表示字段需满足或匹配给定的条件。
eg:hist字段值大于20小于30

        .where({
            hist:_.and(_.gt(20),_.lt(30)) //第一种方法
         // hist:_.gt(20).and(_.lt(30))   第二种方法
        })

eg:hist字段值大于20小于30

        .where({
            hist:_.or(_.gt(20),_.lt(30)) 
        })
2、查询多个字段

eg:查询hist小于12或作者是"腾讯新闻"的数据

        .where(_.or([
            {hist:_.lt(12)},
            {author:"腾讯新闻"}
        ]))
(3)not和nor

三、查询字段操作符 (1)exists

判断字段是否存在
eg:找出存在 hist点击次数 字段的数据

        .where({
            hist:_.exists(true)
        })
(2)mod

给定除数和余数,要求字段作为被除数
eg:找出点击次数为10的倍数的记录

        .where({
            hist:_.mod(10,0)
        })


四、数组操作符 (1)all

找出tabs数组字段中同时包含“落马”,“贪污”的记录

        .where({
            tabs:_.all(["落马","贪污"])
        })

结果:


(2)elemMatch

针对数组是对象数组的情况下。要求数组中至少包含一个满足elemMatch给定的所有条件的元素。
eg:假设集合示例数据如下:

{
"id":"a",
"city":"x0",
"places":[{
   "type":"garden",
   "area":300,
   "age":1
}]

"id":"b",
"city":"y0",
"places":[{
   "type":"theatre",
   "area":50,
   "age":15
}

找出 places 数组字段中至少同时包含一个满足“area大于100 且 age小于2”的元素

const _ = db.command
db.collection("todos").where({
   places:_.elemMatch({
     area:_.gt(100),
     age:_.lt(2)
    })
})
.get()
(3)size

用于数组字段的查询筛选条件,要求数组长度为给定值
eg:找出tabs数组字段长度为2的所有记录

        .where({
            tabs:_.size(2)
        })


五、更新操作符(和upDate配合)

涉及到权限问题,控制台添加的数据只能控制台操作

  • inc 自增
  • mul 自乘
  • remove 用于删除某一字段
  • rename
  • set 跟upDate差不多,但是set能覆盖原来数据
  • push 如字段值为数组,往数组尾部增加指定值
  • pop 如字段值为数组,从数组尾部删除一个元素
  • shift 如字段值为数组,从数组头部删除一个元素
  • unshift 如字段值为数组,往数组头部增加指定值
  • pull 移除指定元素
inc
        .doc("id")
        .update({
            data:{
                hist:_.inc(-6)
                //负号自-6 正好自+
            }
        })
remove
        .update({
            data:{
                hist:_.remove()
                //删除hist这个字段
            }
        })

set

比如,原本有style:{color:red,size=bigger}
执行完set更新数据后

        .update({
            data:{
                style:_.set({
                   color:"blue"
                 })
            }
        })

结果:style:{color:bule}


而如果仅仅只update

        .update({
            data:{
                style:{
                   color:"blue"
                 }
            }
        })

结果:style:{color:blue,size=bigger}
注意:如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID。

push、unshift
        .update({
            data:{
                tabs:_.push(["财经"])
                //尾部添加元素
                tabs:_.unshift(["财经"])
                //向头部添加元素
            }
        })

若本身没有数组,push可以添加,例如,可以给数据里添加一个字段list,数组元素是“aa”,“bb”

        .update({
            data:{
                list:_.push(["aa","bb"])
                //添加数组
            }
        })

另外,push也可以在指定位置上添加元素,需要往里面传递一个对象。比如要从第二个位置开始插入,指定position=1
(小程序数组下标从0开始)

        .update({
            data:{
                tabs:_.push({
                   each:["财经"],
                   position:1
                })
            }
        })
pop、shift
            data:{
                tabs:_.pop()
                //尾部元素被删除
                tabs:_.shift()
                //删除第一个元素
            }
pull
            data:{
                tabs:_.pull("数码")
                //删除了 数码 这个元素
            }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号