微信小程序增删改查方法

官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/Cloud.database.html

//先获取数据库的引用
const db = wx.cloud.database()
//获取集合的引用
const image= db.collection('image')
const user= db.collection('user')

新增记录

image.add({
  // data 字段表示需新增的 JSON 数据
   data: {
     image_id:fileID,
     openid:openid
   },
   success: function(res) {
     wx.showToast({
       title: '添加成功',
       icon: 'success',
       duration: 1000
     });
   }
 })

删除记录

//根据ID删除
image.doc('记录的ID').remove({
  success: function(res) {
    console.log(res)
  }
})

 //根据条件删除image表中记录
 image.where({
    image_id:fileID,
    openid:that.data.openid
 }).remove()
 .then(res=>{
   console.log(res)
});

更新记录
更新文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/update.html

//根据ID更新
image.doc('记录的ID').update({
  // data 传入需要局部更新的数据
  data: {
    // 表示将 done 字段置为 true
    done: true
  },
  success: function(res) {
    console.log(res.data)
  }
})
//如果需要替换更新一条记录,可以在记录上使用 set 方法,替换更新意味着用传入的对象替换指定的记录:
//如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID。
image.doc('记录的ID').set({
  data: {
     image_id:fileID,
     openid:openid
  },
  success: function(res) {
    console.log(res.data)
  }
})

//自增
const _ = db.command
user.where({
	user_id:user_id,
}).update({
  data: {
    num: _.inc(1)
  }
})

查询记录

//根据id查询记录
image.doc('记录的ID').get({
  success: function(res) {
    // res.data 包含该记录的数据
    console.log(res.data)
  }
})

//根据条件查询记录
image.where({
  openid: openid,
})
.get({
  success: function(res) {
    // res.data 是包含以上定义的两条记录的数组
    console.log(res.data)
  }
})

//根据条件排序查询记录
image.where({
  openid: openid,
}).orderBy('sort', 'asc').get({
  success: function(res) {
    // res.data 是包含以上定义的两条记录的数组
    console.log(res.data)
  }
})

//分页查询
image.where({
  openid: openid,
}).orderBy('sort', 'asc').skip(0)
   .limit(5).get({
  success: function(res) {
    // res.data 是包含以上定义的两条记录的数组
    console.log(res.data)
  }
})


//随机查询数据库中的数据
db.collection('test')
.aggregate()
.sample({
    size: 1
}).end()
.then(  
	res => {  
		console.log(res);  
    }
)

找出进度大于或等于 50 的 todo
const _ = db.command
db.collection('todos').where({
  progress: _.in([0, 100])
})
.get({
  success: console.log,
  fail: console.error
})
文档地址:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.gte.html

云函数多表关联查询
文档地址:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.lookup.html#%E7%A4%BA%E4%BE%8B

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const student = db.collection('student')
  try{
    return await student
      .aggregate().lookup({
      from: 'score',		//关联的学生成绩表
      localField: 'stid',    //student表要关联的字段
      foreignField: 'sid',		//score表要关联的字段
      as: 'score_list'		//给关联查询的值起别名
    }).lookup({
      from: 'class',
      localField: 'clId',   //student表要关联的字段
      foreignField: 'cid',    //class表要关联的字段
      as: 'class_list'		//给关联查询的值起别名
    }).sort({
      score: -1,   //1正序 -1是倒叙
      date: -1
    })
    .end()
  }catch(e){
   console.log(e);
  }
}

给列集合中的对象属性动态赋值

 //列表中的用户点赞增加 特定写法
 [`userList[${index}].like_num`]:parseInt(that.data.userList[index].like_num) +1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值