云开发提供了一个 JSON 数据库(类似MongoDB)。数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
云开发数据库提供以下几种数据类型:
String:字符串
Number:数字
Object:对象
Array:数组
Bool:布尔值
Date:时间
Geo:多种地理位置类型,详见下
Null
1. app.js中初始化
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: 'cloud1-1gtoo4qib16a1e69',
traceUser: true,
})
2. 增加数据 Promise 风格
let db = wx.cloud.database();
db.collection('news').add({
// data 字段表示需新增的 JSON 数据
data: {
title:"小程序开课啦",
time:"2021.3.12",
section1:"微信小程序开发与设计已在链课上推出。",
section2:" 链课: https://moochain.net",
id:"008"
}
})
.then(res => {
console.log(123, res)
})
//回调的写法
addData(){
let db = wx.cloud.database();
db.collection('course').add({
data:{
name: "c#",
time: "2019",
long: "325648"
},success(res){console.log(111,res);},
fail(err){console.log(222,err);},
complete(res){console.log(333,res);}
});
},
//async-await写法 推荐写法
addData: async function(){
let db = wx.cloud.database()
let res = await db.collection('test1').add({
data: {
title:"小程序开课啦",
time:"2021.3.12",
section1:"微信小程序开发与设计已在链课上推出。",
section2:" 链课: https://moochain.net",
id:"008"
}
})
console.log(567, res)
},
3. 获取数据
getData: async function(){
let db = wx.cloud.database()
let res = await db.collection("test1").get() //整个集合
console.log(68, res)
},
//查询数据 where( ) 获取一条数据,赋值如: title:res.data[0].title
let res = await db.collection("test1").where({title:"不错不错"}).get()
db.collection("course").where({age:_.gt(30)}).get()
查询数据排序
orderBy('id', 'asc') 升序排列
orderBy('id', 'desc') 降序排列
查询数据限制 limit()
let res = await db.collection("test1").limit(2).get() //只查前2条数据
更新数据update
let db = wx.cloud.database()
let res = await db.collection('test1').doc('b00064a760a4741a189326627972808d').update({
// data 传入需要局部更新的数据
data: {
// 表示更新title字段
title: "我无怨无悔"
}
})
console.log(633, res)
删除数据remove
let db = wx.cloud.database()
let res = await db.collection('test1').doc('b00064a760a4741a189326627972808d').remove()
console.log(633, res)
//删除多条
db.collection('todos').where({
done: true
}).remove()