題記:針對云開發(fā)中數(shù)據(jù)庫的使用朽砰,基本上都要先在json文件前先對云數(shù)據(jù)庫進行調(diào)用互躬,以及數(shù)據(jù)庫集合中的調(diào)用,當(dāng)然了蕊肥,如果說還需要使用command,也需要引入
const db = wx.cloud..database()
const _ = db.command;
const 集合名字 = db.collection(數(shù)據(jù)庫中的集合名字)
一.往數(shù)據(jù)庫中添加數(shù)據(jù)
const profile = db.collection('profile')
profile.add({
data:{
key:value
}
}).then(res=>{
console.log(res)
})
二.查詢數(shù)據(jù)
const profile = db.collection('profile')
profile.get().then(res=>{
console.log(res.data)//查詢到的數(shù)據(jù)
})
三.選擇查詢
const profile = db.collection('profile')
profile.where({
查詢條件key:value
}).get().then(res=>{
console.log(res.data)
})
四.顯示查詢數(shù)據(jù)的數(shù)目
const profile = db.collection('profile')
profile.count().then(res=>{
console.log(res.total)
})
如果需要查詢指定數(shù)據(jù)的數(shù)目蛤肌,則只需要在count前面加上where語句查詢
profile.where({
查詢條件key:value
}).count().then(res=>{
console.log(res.total)
})
五.數(shù)據(jù)排序
const profile = db.collection('profile')
profile.orderBy('排序的字段','desc(降序)').orderBy('排序的字段','asc(升序)').get().then(res=>{
console.log(res.data)
})
然后如果需要復(fù)雜排序壁却,是可以一直嵌套orderBy的
六.大于小于查詢
const _ = db.command
const profile = db.collection('profile')
profile.where({
查詢字段:_.lt(50)//小于50
:_.in([4,5,6])//查詢符合在4,5裸准,6中的數(shù)據(jù)
:_.gt(20).and(_.lt(50))//大于20小于50的數(shù)據(jù)
}).get().then(res=>{
console.log(res.data)
})
七.限制查詢數(shù)據(jù)的多少(將來可以拿來做分頁)
const profile = db.collection('profile')
profile.limit(10).get().then(res=>{//查詢10條數(shù)據(jù)
console.log(res.data)
})
八.獲取詳情頁的查詢方法
const profile = db.collection('profile')
profile.doc('字段id').get().then(res=>{
console.log(res.data)
})
九.限制查詢展东,假如在查詢的字段id包含大量數(shù)據(jù),但用戶并不需要那么多的查詢數(shù)據(jù)炒俱,只需要其中幾個數(shù)據(jù)時盐肃,我們就可以對它進行限制查詢
const profile = db.collection('profile')
profile.doc('字段id').field({
你想查詢的數(shù)據(jù)key:true
}).then(res=>{
console.log(res.data)
})
十.往數(shù)組中添加數(shù)據(jù)
const _ = db.command
const profile = db.collection('profile')
profile.doc('字段id').update({
data:{
想要添加數(shù)據(jù)的數(shù)組名:_.push({key:value})
}
}).then(res=>{
console.log(res.data)
})
十一.刪除數(shù)組中的某個內(nèi)容
const _ = db.command
const profile = db.profile('profile')
profile.doc('字段ID').update({
data:{
想要操作數(shù)據(jù)的數(shù)組名:_.shift()//從頭部刪除
想要操作數(shù)據(jù)的數(shù)組名:_.pop()//從尾部刪除
}
})
十二.完成數(shù)組的更新
const profile = db.collection('profile')
profile.doc('字段id').update({
data:{
想要更新數(shù)據(jù)的字段名:key:value
}
}).then(res=>{
console.log(res)
})
十三.批量更新只能在云函數(shù)中進行
云函數(shù)index.js中
const cloud = require('wx-server-sdk')
cloud.init()
const db = wx.database()
const profile = db.collection('profile')
//云函數(shù)入口函數(shù)
exports.main = async (event,context)=>{
return await profile.where({
這里是可以加篩選條件的
}).update({
data:{
key:value
}
})
}
然后上傳云函數(shù)
如何調(diào)用云函數(shù)
方法名:function(event){
wx.cloud.callFunction({
name:'云函數(shù)的名字'
success:res=>{
console.log(res)
}
})
}
十四.數(shù)據(jù)的刪除
const profile = db.collection('profile')
profile.doc('字段id').remove().then(res=>{
console.log(res)
})
十五.完成對數(shù)據(jù)的批量刪除,也是只能在云函數(shù)中進行
const cloud = require('wx-server-sdk');
cloud.init()
const db = wx.database()
const profile = db.collection('profile')
exports.main = async (event,context)=>{
return await profile.where({
需要刪除的字段key:value
}).remove().then(res=>{
console.log(res)
})
}
實現(xiàn)云函數(shù)的上傳后权悟,在頁面中進行調(diào)用
方法名:function(event){
wx.cloud.callFunction({
name:'云函數(shù)名字'
}).then(res=>{
console.log(res)
})
}
十六.模糊查詢
const profile = db.collection('profile')
profile.where({
你要查詢的字段:db.RegExp({
regexp:"查詢內(nèi)容片段"
})
或者 你要查詢的字段:/***/i(大小寫都行)
}).get().then(res=>{
console.log(res.data)
})