云开发开始
数据库初始化连接上指定数据库注意老版的es和新版的区别回调地狱新版es6微信小程序加载中的样式数据库添加知识补充(form)es6新语法规则更新云数据库操作更新的set操作(覆盖)云数据库删除操作获取记录格式数据库监听各项构建查询条件field()方法接受一个必填对象用于指定需返回的字段,对象的各个 key 表示要返回或不要返回的字段,value 传入 true|false(或 1|-1)表示要返
·
微信云开发开始
连接云数据库
数据库初始化
const = wx.cloud.database();
连接上指定数据库
db.clollection("demo1ist").get().then(res=>{
this.setdata({
dataobject:res.data
})
})
注意老版的es和新版的区别
-
回调地狱
getdata ( db.wx.collection("demolist").get( {success:res=>{ console.log(res) this.setdata({ dataobj:res.data }) } }) )
-
新版es6
const = db.cloud.database() db.collection("text1").get().then(res=>{ }).catch(err=>{ console.log(res) })
微信小程序加载中的样式
wx.showLoading({ title::"加载中", mask:ture }) wx.hideloading()
数据库添加
db.collection().add({ data:{ title:"测试", author:'李四' } }).then(res=>{ consloe.log(res) wx.hideloading() })
知识补充(form)
<from bindtap="binsub">
<input name ="title">
</input>
<button from-type="submit">重置</button>
</from>
es6新语法规则
-
var {title,author,content}=res.detail.value; //或者 var const = res.detile.value db.collection().add({ data:const }).then(res=>{ consloe.log(res) wx.hideloading() }) console.log(title,author,coontent) db.collection().add({ data:{ title:"测试", author:'李四', content:"第三地啊是第几" } }).then(res=>{ consloe.log(res) wx.hideloading() })
更新云数据库操作
const db=ws.cloud.database()
updatedata(){
db.collection("tetx1").doc("id").update({
data:{
title:"测试",
author:'李四',
content:"第三地啊是第几"
}
}).then(res=>{
consloe.log(res)
})
}
onst db=ws.cloud.database()
updatedata(){
db.collection("tetx1").where({
author:222
}).update({
data:{
title:"测试",
author:'李四',
content:"第三地啊是第几"
}
}).then(res=>{
consloe.log(res)
})
}
更新的set操作(覆盖)
db.collection("tetx1").doc("id").set(
data:{
title:"idhiasodkla"
}
).then(res=>{
consloe.log(res)
})
云数据库删除操作
daldtata(){
db,collection("tetx1").doc("id").remove().then(res=>{
console.log(res)
})
}
catch(e)
异常捕获
获取记录格式
db.collection("tetx1").count().then(res=>{
logsole.log(res)
})
数据库监听
var arrar=[];
db.collection("tetx1").watch({
onChange:res=>{
console.log(res)
this.setdata({
dataarr:res.data
})
},
onError:err=>{
consloe.log(ree)
}
})
各项构建查询条件
getdata(){
db.collection("text1").limit(3).skip(6)orderBy("time","desc").get().then(res=>{
console.log(res)
})
}
orderBy()//在某个字段里面查找
//指定查询返回结果时从指定序列后的结果开始返回,常用于分页
field()
方法接受一个必填对象用于指定需返回的字段,对象的各个 key 表示要返回或不要返回的字段,value 传入 true|false(或 1|-1)表示要返回还是不要返回。
db.collection('todos').field({
description: true,
done: true,
progress: true,
})
.get()
.then(console.log)
.catch(console.error)
云函数command
eq
const _ =db.command;
eq//等于某个字段
getdata(){
db.collection("text1").where({
hits:_.eq(666)
}).get().then(res=>{
this.stedata({
datalist:res.data
})
})
}
and lt(最大)
getdata(){
db.collection("text1").where({
hits:_.and(_.gt(0),_.li(100))
}),get().then(res=>{
this.setdata({
datalist:res.data
})
})
}
get//找出进度大于或等于
const _ = db.command
db.collection('todos').where({
progress: _.gte(50)
})
.get({
success: console.log,
fail: console.error
})
lte//找出进度小于或等于 50 的 todo
const _ = db.command
db.collection('todos').where({
progress: _.lte(50)
})
.get({
success: console.log,
fail: console.error
})
混合使用
hits:_.and(_.get(0),_.lte(100))
or函数
hits:_.or(_.lte(10),_.gte(100))
where(_.or([{
hits:_.lt(300)
},
{
author:_.eq("李四")
}]))
tags函数
找出存在 tags 字段的记录
const _ = db.command
db.collection('todos').where({
tags: _.exists(true)
})
.get({
success: console.log,
fail: console.error
})
size()函数
找出 tags 数组字段长度为 2 的所有记录
const _ = db.command
db.collection('todos').where({
places: _.size(2)
})
.get({
success: console.log,
fail: console.error,
})
enq
查询筛选条件,表示字段不等于某个值。eq
指令接受一个字面量 (literal)
all数组查询操作符。
用于数组字段的查询筛选条件,要求数组字段中包含给定数组的所有元素
const _ = db.command
db.collection('todos').where({
tags: _.all(['cloud', 'database'])
})
.get({
success: console.log,
fail: console.error
})
updata更新字段
db.collection("text1").doc("id").updata({
data:{
title:'搜索'
}
})。then.(res=>{
console.log(res)
})
inc
多个用户同时写,对数据库来说都是将字段自增,不会有后来者覆写前者的情况
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
progress: _.inc(10)//_.inc(-1)
}
})
remove
更新操作符,用于表示删除某个字段。
把指定字段删除
set(会把原来的老东西覆盖)
更新操作符,用于表示删除某个字段。
db.collection('todos').doc('doc-id').update({
data: {
style: {
color: 'red'
}
}
})
// 以下方法更新 style 为 { color: 'red', size: 'large' }
db.collection('todos').doc('doc-id').update({
data: {
style: _.set({
color: 'red',
size: 'large'
})
}
})
更新数组操作符
push//添加新的数据
_.push([‘hud’])//里面加的是数组元素(只能添加一个)
pop//删除指定字段的最后一个元素
unshift//添加多个数据
pull//删除字段下指定的元素
tabs:_.pull(“shiu1”)
云函数的使用
云函数的初始化
cloud.init()
const db = cloud.database();
云函数入口
//云函数的操作
return await db.colletcion("text1")
//在js的操作
在onload({
wx.cloud.callFunction({
name:"getdata",
data:{
name:"shi1",
age:18
}
})
}).then(res=>{
this.stedata({
consloe.log(res)
})
})
云函数的入口相关操作
//云函数的操作
var num=event.num;
var page=event.page;
return await db.collection("tetx1").skip(page).limit(num)
//js的操作
getdata(num=0.page)
wx.cloud.callFunction({
name:"tetx1,
data:{
num:5,
page:page
}
"}).then(res=>{
console.log(res)
var olddata=this.data.datalist
var newdata=olddata,coucat(res.result.data);
this.setdata({
datalist:res.result.data
})
)
onReachBottom:function(){
var page=this.data.datalist.length
this.get(5,page)
},
上传文件
单个图片上传
wx.chooseImage(
}).then(res=>{
var filepath=res.tem.Filepaths
filepath.forEach(ietem,idx)=>{
var filename=Data.now+"_"+idx
this.cloudFile(filepath)
}
})
cloudFile(Filename,path){
wx.showloading({
title:"加载中"
})
wx.cloud.uploadFile({
cloudpath:data.now()+".jpg",
filepath:path
}).then(res=>{
this,setdata({
picurl:res.fileid
})
}),
wx.hideloading()
}
//wxml
<image src="{{picurl}}"></image>
多张图片上传
var = UrlArr= []
cloudFile(Filename,path){
wx.showloading({
title:"加载中"
})
wx.cloud.uploadFile({
cloudpath:data.now()+".jpg",
filepath:path
}).then(res=>{
urlArr.push(res.fileid)
if(filepath.lenggh==urlArr.length){
this.stedata({
urlArr
})
}
})
}),
wx.hideloading()
}
更多推荐
已为社区贡献1条内容
所有评论(0)