前言
因?yàn)轫?xiàng)目需要?jiǎng)偨佑|小程序,算是個(gè)萌新,寫(xiě)這篇文章是為了鞏固一下所學(xué)的東西(其實(shí)就是閑著太無(wú)聊了??),代碼是靠自己理解的,如果有錯(cuò),歡迎各位指正( ̄︶ ̄*))
廢話不多說(shuō)了,嘿喂狗~~
云開(kāi)發(fā)數(shù)據(jù)庫(kù)
首先說(shuō)到數(shù)據(jù)庫(kù)操作就會(huì)讓人想到那四個(gè)字
“增”、“刪”、“改”、“查”
那么在進(jìn)行數(shù)據(jù)操作之前應(yīng)該先干嘛呢
沒(méi)錯(cuò)就是先新建一個(gè)數(shù)據(jù)庫(kù)啊,沒(méi)數(shù)據(jù)庫(kù)咋操作?。?s>bushi(●’?’●))
創(chuàng)建數(shù)據(jù)庫(kù)
首先,打開(kāi)微信開(kāi)發(fā)者工具新建一個(gè)項(xiàng)目
如圖,AppID一定不能用測(cè)試號(hào)?。?!,不然無(wú)法使用云開(kāi)發(fā)
小程序id有需要自行注冊(cè),這里就不多說(shuō)啦。
=>微信公眾平臺(tái)官網(wǎng)<=
項(xiàng)目新建好后點(diǎn)擊云開(kāi)發(fā)
先將這個(gè)環(huán)境復(fù)制下來(lái),等會(huì)要用!
然后按照?qǐng)D里的順序新建一個(gè)集合,因?yàn)槲疫@已經(jīng)有test_user集合了就不新建了。
打開(kāi)app.js,將剛剛復(fù)制的字符串粘貼到下圖位置
//初始化云環(huán)境
if (!wx.cloud) {
console.error('請(qǐng)使用 2.2.3 或以上的基礎(chǔ)庫(kù)以使用云能力');
} else {
wx.cloud.init({
env: '把剛剛復(fù)制的那串字符粘貼到這里',
traceUser: true,
});
}
到這已經(jīng)完成了數(shù)據(jù)庫(kù)的創(chuàng)建并配置到小程序中的操作了,接下來(lái)就是“增”、“刪”、“改”、“查”的操作
數(shù)據(jù)庫(kù)操作
數(shù)據(jù)庫(kù)新建完成了就該進(jìn)行操作了
一、“增”
先選中要操作的集合代碼如下
let db = wx.cloud.database() //設(shè)置數(shù)據(jù)庫(kù)
let userCollection = db.collection('test_user') //單引號(hào)里為剛剛新建的集合名
userCollection.add({
data: {
number: 1,
}
}).then(res => {
console.log('添加成功',res)
this.setData({
//將增加的值添加到當(dāng)前頁(yè)面的變量里
number: res.number,
dataId: res._id,
})
}).catch(err => {
console.log('添加失敗',err)//失敗提示錯(cuò)誤信息
})
個(gè)人比較喜歡用then函數(shù),也可以使用開(kāi)發(fā)文檔提供的回調(diào)函數(shù)success、fail,這里就不演示了。
二、“查”
由于刪除和修改需要用到查找就先講數(shù)據(jù)庫(kù)的查找了
構(gòu)建查詢條件有好幾個(gè)方法,我這里就用我用的最順手的where了,如果有需要可以到這個(gè)鏈接找找看
let db = wx.cloud.database() //設(shè)置數(shù)據(jù)庫(kù)
let userCollection = db.collection('test_user') //單引號(hào)里為剛剛新建的集合名
userCollection.where({
//where其實(shí)是向集合里查詢是否有里面這對(duì)數(shù)據(jù),如果有就返回這條數(shù)據(jù)記錄
//一般是使用openid(一個(gè)用戶只有一個(gè)openid,具有唯一性,方便查詢操作)
//但目前獲取openid需要使用云函數(shù),所以這里就不細(xì)講了,我這里使用每條記錄都帶有的_id來(lái)進(jìn)行查詢
_id: this.data.dataId
}).get().then(res => {
console.log('數(shù)據(jù)查詢成功',res)//將返回值存到res里
this.setData({
//將查詢到的數(shù)據(jù)記錄里的number的值存放到data.number
number: res.data[0].number
})
}).catch(err => {
console.log('查詢失敗',err)//失敗提示錯(cuò)誤信息
})
查詢結(jié)果如下圖,得到的返回值res里的data[]是查詢到的記錄,因?yàn)槲疫@只有一條記錄符合查詢條件,所以data[]數(shù)組的長(zhǎng)度為1,即data[0]就是我們查詢到的數(shù)據(jù)。
三、“刪”
數(shù)據(jù)的刪除是基于查詢之后,只有查到數(shù)據(jù)在哪才能進(jìn)行刪除操作。
除了刪庫(kù)(bushi)(* ̄3 ̄))
這里使用的是remove()進(jìn)行刪除操作
remove只支持通過(guò)匹配 where 語(yǔ)句來(lái)進(jìn)行刪除操作?。。?/mark>
let db = wx.cloud.database() //設(shè)置數(shù)據(jù)庫(kù)
let userCollection = db.collection('test_user') //單引號(hào)里為剛剛新建的集合名
userCollection.where({
//先查詢
_id: this.data.dataId
}).remove().then(res => {
console.log('刪除成功')
this.setData({
//數(shù)據(jù)庫(kù)刪除了,那也得將data里的值也刪了,不然數(shù)據(jù)容易出錯(cuò)
number: ‘ ’
})
}).catch(err => {
console.log('刪除失敗',err)//失敗提示錯(cuò)誤信息
})
執(zhí)行完之后數(shù)據(jù)庫(kù)的這條數(shù)據(jù)就沒(méi)了,如下圖
remove()有個(gè)值得注意的地方,就算返回刪除成功也不一定代表想要?jiǎng)h除的記錄已經(jīng)被刪除了,有可能通過(guò)where查詢到的記錄為0個(gè),此時(shí)即使提示成功,被刪除的記錄數(shù)也為0。
四、“改”
終于到最后的數(shù)據(jù)修改了,修改用的是update(),update()用起來(lái)就像where()和add()的結(jié)合
代碼如下
let db = wx.cloud.database()
let userCollection = db.collection('test_user')
userCollection.where({
//先查詢
_id: this.data.dataId
}).update({
data: {
number: 2,
num: 2,
}
}).then(res => {
console.log('更新成功')
this.setData({
number: 2,
num: 2,
})
}).catch(err => {
console.log('更新失敗',err)//失敗提示錯(cuò)誤信息
})
這是數(shù)據(jù)更新前
這是更新之后
我們可以看到,update(),不僅可以修改記錄里的值,還能添加記錄里沒(méi)有的鍵值對(duì),完成了add()的工作,所以我才說(shuō)update()就像where()和add()的結(jié)合。
update()和remove()有一樣需要注意的點(diǎn),就算返回更新成功也不一定代表想要更新的記錄已經(jīng)被更新了,有可能通過(guò)where查詢到的記錄為0個(gè),此時(shí)即使提示成功,更新的記錄數(shù)也為0。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-488986.html
總結(jié)
以上是我對(duì)于微信小程序云開(kāi)發(fā)數(shù)據(jù)庫(kù)操作的簡(jiǎn)單介紹,本人是因?yàn)楸荣愴?xiàng)目剛剛接觸小程序沒(méi)多久,是個(gè)萌新也還在學(xué)習(xí)階段,以上所述僅僅是個(gè)人看法,如有描述不當(dāng),或有錯(cuò)誤,歡迎各位指正。最后附上我小程序項(xiàng)目的開(kāi)源地址吧
github
gitee
還沒(méi)完成,不過(guò)之后應(yīng)該沒(méi)多少時(shí)間寫(xiě)了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-488986.html
到了這里,關(guān)于微信小程序云開(kāi)發(fā),數(shù)據(jù)庫(kù)“增”、“刪”、“改”、“查”操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!