微信小程序-云开发(1)常用的一些数据操作

在微信小程序-云开发创建的时候,它自动替我们创建了cloudfunctions和miniprogram文件,并且在project.config.json中定义好了这两个文件的名称和路径。如果我们要更改这两个文件名的话,相应的也要修改project.config.json里面的。


image.png

下面来讲一下关于云开发那些常用的数据方法吧

微信小程序-云开发可以前后端一起操作,在做项目时,通常搭建两个环境,一个是测试环境,另一个是上线环境。

还有需要知道的微信小程序知识是:云开发操作数据都是异步操作的。

那么,怎么在云开发里面 添删改查 数据呢?

常用的一些微信提供的方法:
  • wx.cloud.database --- 获取数据库的引用
  • db.collection --- 获取集合的引用
  • Collection.doc --- 获取记录的引用 ( doc 都是传入指定的id值 )
  • Collection.get --- 获取集合数据
  • Document.get --- 获取记录数据 ( Document 简写 doc )
  • Collection.add --- 添加数据
  • Document.update --- 更新一条记录
  • Document.set --- 替换更新一条记录
  • Document.remove --- 删除一条记录
  • Collection.count --- 查询语句对应的总数量
  • Collection.where --- 指定筛选条件
  • Collection.orderBy --- 指定查询排序条件
  • Collection.field --- 指定返回结果中记录需返回的字段
  • Collection.limit --- 指定查询结果集数量上限
  • Collection.skip --- 指定查询返回结果时从指定序列后的结果开始返回,常用于分页
  • db.command --- 获取数据库查询及更新指令
    方法有 .eq .nep .lt .gt .lte .gte .in .and .or .......
例子:

下面直接展示绑定的函数,如果需要的话直接绑定在相关的wxml标签作为点击事件 bindtap="函数方法名" 即可

(1) 操作数据库的方法
//1.获取到数据库 --- wx.cloud.database()
let db = wx.cloud.database();
//2.链接数据库中的集合 --- .collection()
let mycollection = db.collection("你自己在云开发的数据库的集合名称")
//3.调用接口上传数据 
mycollection.add({ ... })

也可以 简写成

wx.cloud.database().collection("集合名称").doc("某条数据id").add({...})

也可以 挂载到onLoad中使得在该page页面中都可以调用

onLoad: function() {
    //---挂载在这里,this指向page,也可以挂载在data里面,但是相对麻烦点
    this.db = wx.cloud.database();
    this.mycol = this.db.collection("集合名称");
}
(2) add upload set remove
//---添加数据 --- add
addTap() {
    wx.showToast({
      title: '上传中',
      icon:"loading"
    })
    let db = wx.cloud.database();
    let mycollection = db.collection("022project")
    mycollection.add({ // --- Collection.add
      data:{
        name:"小芳",
        age:16,
        gender: "女"
      },
      success(res){
        wx.showToast({
          title: '上传成功',
          icon:"success",
          duration:2000
        })
        console.log("数据添加成功",res)
      },
      fail(err){
        console.log("上传失败",err)
      }
    })
},
//--- 更新数据 update
updateTap(){
    let db = wx.cloud.database();
    let mycol = db.collection("022project");
    mycol.doc("988c1b1b5ccd0d720baeadda7d85c917")
    .update({
        data:{
            name:"小兰",
            age:"21",
            like:"运动"//也可以添加属性
        }
    }).then(res=>{
        console.log("更新成功!(更改数据)",res)
    })
 },
//--- 替换更新数据 set (替换更新一条记录,先删数据再添加)
setTap(){
    let db = wx.cloud.database();
    let mycol = db.collection("022project");
    mycol.doc("9c4488c75ccd39b30bcbd14e23495813")
    .set({
        data:{
            name:"小凡",
            age:20
        },
        success(res){
            console.log("更新替换成功!",res)
        }
    })
},
//--- 删除数据 remove
delTap(){
    wx.cloud.database().collection("022project")
    .doc("96c1cbbe5ccd3dc60bcc22222b0cab2d")
    .remove({
        success:console.log("删除成功!"),
        //es6简写,只能写一句console
    })
}
(3) get doc
//---获取数据 Collection.get --- Collection.doc.get(指定)
getdataTap() {
    let db = wx.cloud.database();
    let mycol = db.collection("022project");
    /*
    * get:获取到集合中的所有 用户上传的数据 ***
    */
    //--回调函数的写法
    mycol.get({
        success(res){
            console.log("获取全部数据",res)
        }
    })
    /*
    * doc
    */
    //--promise写法
    // mycol.doc("52432e66-347f-43c0-8a7c-598374b62b83")//报错--> 因为没有权限
    mycol.doc("988c1b1b5ccd0d720baeadda7d85c917")//用户自己上传的数据可以拿到
    .get().then(res=>{
        console.log("获取到指定id的记录",res)
    })
},
(4) where count
//---根据条件查询数据 where
getCondition(){
    let db = wx.cloud.database();
    let mycol = db.collection("022project");
    mycol.where({
        age:16
    }).get().then(res=>{
        console.log("where条件查询",res)
    })
}
(5) count field
//--- 查询数据总数量 Collection.count
findTap(){
    wx.cloud.database().collection("022project")
    .where({
        name:"小芳"
    }).count().then(res=>{
        console.log("查询相同名字总数量",res)
    })
},
//--- 按查询排序条件获取数据 Collection.orderBy 
//-- 值order只能取 asc(升序) 或 desc(降序)。
orderTap(){
    //--用挂载好的
    //表示根据年龄从小到大查询数据
        this.mycol.orderBy("age","asc").get()
        .then(res=>{
        console.log("根据age从小到大排序:",res)
    })
}
(6) limit skip
//---获取固定数量的数据 Collection.limit
//--- Collection.skip 指定开始查询
/*
* limit(number):指定查询数据的数量
* skip(number):指定第(number+1)条数据开始查询
*/
limitTap(){
    this.mycol.limit(2).skip(1)
    .get().then(res=>{
        console.log("limit获取一定数量的数据&跳过指定条",res)
    })
},
//--- 获取到指定返回的字段 Collection.field 
fieldTap(){
    this.mycol.field({
        name:true
    }).get().then(res=>{
        console.log("field只返回name字段",res);
    })
}
(7) db.command
/**
* command:获取查询指令的对象
*   指令:
*   1、gt:大于
*   2、lt:小于
*   3、and:逻辑运算 “与”
*/
findgtTap(){
    const _ = this.db.command;
    this.mycol.where({//--where 定义查询条件
        age: _.gt(18).and(_.lt(25))//.gt() 大于 .lt()小于
    }).get().then(res=>{
        console.log("查询18<age<25的数据",res);
    })
},
// --- in获取到指定几个年龄段的人 command的方法
inTap(){
    const _ = this.db.command;
    this.mycol.where({
        age:_.in([18,23,26])
    }).get().then(res=>{
        console.log("指定年龄为[18,23,26]的人",res)
    })
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容