av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)庫的管理

一、控制臺數(shù)據(jù)庫高級操作

在云開發(fā)控制臺的數(shù)據(jù)庫管理頁中可以編寫和執(zhí)行數(shù)據(jù)庫腳本,腳本可對數(shù)據(jù)庫進(jìn)行增刪查改以及聚合的操作,語法與之前的API語法相同。通過數(shù)據(jù)庫腳本的操作可以彌補(bǔ)云開發(fā)控制臺可視化操作的不足。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、海滄ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的海滄網(wǎng)站制作公司

腳本已經(jīng)有了以下全局變量,這樣我們就可以直接在腳本里面使用db、指令_和聚合了$

const db = wx.cloud.database()
const _ = db.command
const $ = db.command.aggregate

數(shù)據(jù)庫腳本還支持以下表達(dá)式,主要是常量、變量和對象的聲明以及數(shù)據(jù)庫API的調(diào)用表達(dá)式:

表達(dá)式 支持方式 示例
獲取屬性 支持獲取對象的合法屬性,對象如 db、_,合法屬性如 db 的 collection 屬性 db.collection
函數(shù)調(diào)用 支持 db.collection()
new 支持 new db.Geo.Point(113, 23)
變量聲明 支持變量聲明,同時(shí)支持對象解構(gòu)器的聲明方式 const Geo = db.Geo const { Point } = db.Geo
對象聲明 支持 const obj = { age: _.gt(10) }
常量聲明 支持 const max = 10
負(fù)數(shù) 支持 const min = -5
注釋 支持 // comment / comment /
其他 不支持

二、數(shù)據(jù)庫腳本的實(shí)際應(yīng)用

云開發(fā)控制臺的數(shù)據(jù)可視化管理和高級操作還可以實(shí)現(xiàn)很多類似于關(guān)系型數(shù)據(jù)庫GUI管理工具的功能,畢竟GUI管理的背后就是數(shù)據(jù)庫的腳本操作,更多功能大家可以自己多探索,下面只簡單介紹一些例子:

1、批量刪除一個(gè)集合內(nèi)的多條記錄

我們在開發(fā)的過程中,一個(gè)集合內(nèi)有幾百條、幾千條數(shù)據(jù)希望全部清空,但是又不想刪掉該集合再重建,那應(yīng)該如何做呢,總不能一條一條刪除吧?云開發(fā)控制臺的可視化操作目前無法做到批量刪除一個(gè)集合內(nèi)的多條記錄的,但是這個(gè)功能我們可以通過控制臺數(shù)據(jù)庫高級操作的腳本來輕松進(jìn)行批量刪除,而且還可以創(chuàng)建一個(gè)腳本模板,有需要直接點(diǎn)擊執(zhí)行腳本模板做到長期復(fù)用。比如我們要?jiǎng)h除集合為china的所有記錄:

db.collection('china')
  .where({
      _id: _.exists(true)
    })
  .remove()

由于remove請求只支持通過匹配 where 語句來刪除,我們可以在where里包含一個(gè)條件只要存在_id就刪除,由于基本每個(gè)記錄都有_id,所以就能都刪除了。

2、如何給集合內(nèi)所有數(shù)據(jù)都新增一個(gè)字段

我現(xiàn)在一個(gè)集合內(nèi)有N條數(shù)據(jù),由于數(shù)據(jù)庫初期設(shè)計(jì)的問題,現(xiàn)在想給所有記錄新增一個(gè)字段,想像進(jìn)行關(guān)系型數(shù)據(jù)庫和Excel新增一列的類似操作,那我應(yīng)該怎么做呢?同樣我們也可以通過控制臺數(shù)據(jù)庫高級操作的腳本。比如我們想給china集合內(nèi)的所有記錄都新增一個(gè)updateTime的字段,我們可以查詢到需要新增字段的記錄,然后使用update請求,當(dāng)記錄內(nèi)沒有updateTime字段就會新增:

const serverDate = db.serverDate
db.collection('china')
  .where({
    _id: _.exists(true)
  })
  .update({
    data: {
      updateTime: serverDate(),
    }
  })

3、如何讓記錄按照自己預(yù)想的方式來排序

我在小程序端批量上傳了圖片、文章,但是發(fā)現(xiàn)它們的顯示順序并不是按照我上傳順序來進(jìn)行排序,但是我有不少功能卻非常依賴排序這個(gè)功能,請問我應(yīng)該怎么做?

批量上傳或者你按時(shí)間上傳,記錄的排序并不會按照你認(rèn)為的順序來排序是很正常的,查詢到的數(shù)據(jù)的順序一般也不會是控制臺數(shù)據(jù)庫顯示的順序,這個(gè)都是非常正常的。你如果對排序有需求,有兩種方式,一種是你在開發(fā)時(shí)就能設(shè)計(jì)好排序的字段,比如想讓文章能按時(shí)間來排序,就應(yīng)該在小程序發(fā)表文章時(shí)就設(shè)置一個(gè)字段來記錄文章的發(fā)布時(shí)間,還有一種方式就是手動加字段來自定義,比如輪播的順序,文章置頂或調(diào)整順序這些,可能你還沒有來得及開發(fā)相關(guān)功能,我們可以使用控制臺來自定義,比如給你要排序的記錄新增一個(gè)字段來自定義你想要的排序順序,然后再在數(shù)據(jù)查詢時(shí)使用orderBy。

4、如何新增多條數(shù)據(jù)

使用數(shù)據(jù)庫腳本可以實(shí)現(xiàn)一次性增加多條數(shù)據(jù),目前即使用云函數(shù)也無法做到一次增加多條數(shù)據(jù)庫到集合里,在語法上,這兩者的差異在于,數(shù)據(jù)庫腳本的data支持Array數(shù)組,而API db.collection('').add({data:{}})里的data目前只支持對象Object.

db.collection('china')
  .add({
    data: [
      {
        "_id":"202003041020001",
        "city":"駐馬店",
        "province":"河南",
        "city_area":15000,
        "builtup_area":75.1,
        "reg_pop":905.0,
        "resident_pop":696.0,
        "gdp":1807.69,
      },
      {
        "_id":"202003041020002",
        "city":"紹興",
        "province":"浙江",
        "city_area":8279,
        "builtup_area":199.4,
        "reg_pop":443.11,
        "resident_pop":496.8,
        "gdp":4465.97,
      }
    ]
  })

三、數(shù)據(jù)庫的導(dǎo)入導(dǎo)出

除了可以使用云開發(fā)控制臺以及騰訊云網(wǎng)頁的云開發(fā)控制臺對數(shù)據(jù)庫里面的數(shù)據(jù)進(jìn)行導(dǎo)入導(dǎo)出以外,在前面我們也介紹了如何使用云函數(shù)的后端能力對數(shù)據(jù)進(jìn)行導(dǎo)入導(dǎo)出,當(dāng)然方法也不僅限于此,我們還可以用以下方法:

1、cloudbase-manager-node

我有很多圖片、文件批量導(dǎo)入到了云存儲,但是我批量獲取這些文件的fileID應(yīng)該怎么做?我的數(shù)據(jù)庫有幾十個(gè)集合,數(shù)據(jù)庫經(jīng)常需要備份,每次都要一個(gè)個(gè)導(dǎo)出非常麻煩,有沒有好的方法?

如果大家有類似的功能,大家可以使用cloudbase-manager-node。cloudbase-manager-node的功能非常強(qiáng)大,里面有相比于@cloudbase/node-sdk更加豐富的接口,當(dāng)然這些功能都需要開發(fā)人員可以結(jié)合接口進(jìn)行一定的開發(fā)。

比如我們想批量獲取云存儲文件的fileID,可以使用listDirectoryFiles(cloudPath: string): Promise列出文件夾下所有文件的名稱,也可以使用downloadDirectory(options): Promise來下載文件夾,比如我們想對所有集合的數(shù)據(jù)進(jìn)行備份,可以使用listCollections(options: object): object來獲取所有集合的名稱,然后使用export(collectionName: string, file: object, options: object): object接口來導(dǎo)出所有記錄到指定的json或csv文件里。這個(gè)在后面我們會大致介紹如何使用。

如果我們想要將云存儲里面的文件或文件夾下載備份,將本地電腦的文件或文件夾批量上傳到云存儲,可以使用Cloudbase CLI工具,這個(gè)非常簡單,在后面的章節(jié)CloudBase CLI會介紹到。

2、HTTP API 中的數(shù)據(jù)庫接口

HTTP API是一個(gè)非常通用的方式,無論是哪個(gè)平臺、哪種語法都可以使用HTTP API對云開發(fā)資源里的數(shù)據(jù)進(jìn)入導(dǎo)入和導(dǎo)出,這里就不具體介紹代碼細(xì)節(jié)了,我們可以使用以下接口實(shí)現(xiàn)導(dǎo)入:

POST https://api.weixin.qq.com/tcb/databasemigrateimport?access_token=ACCESS_TOKEN

可以使用以下接口進(jìn)行導(dǎo)出:

POST https://api.weixin.qq.com/tcb/databasemigrateexport?access_token=ACCESS_TOKEN

四、使用回檔進(jìn)行數(shù)據(jù)備份

云開發(fā)提供了數(shù)據(jù)庫回檔功能,系統(tǒng)會自動開啟數(shù)據(jù)庫備份,并于每日凌晨自動進(jìn)行一次數(shù)據(jù)備份,最長保存 7 天的備份數(shù)據(jù)。開發(fā)者可以在數(shù)據(jù)庫操作錯(cuò)誤或者出現(xiàn)其他情況時(shí),可在云控制臺上通過新建回檔任務(wù)將集合回檔(還原)至指定時(shí)間點(diǎn),實(shí)現(xiàn)部分?jǐn)?shù)據(jù)找回,保證數(shù)據(jù)的安全。

回檔期間,數(shù)據(jù)庫的數(shù)據(jù)訪問不受影響?;貦n完成后,開發(fā)者可在集合列表中看到原有數(shù)據(jù)庫集合和回檔后的集合。這樣之前的數(shù)據(jù)就可以找回來了,并與已有的集合里的數(shù)據(jù)進(jìn)行比對?;貦n已完成后,開發(fā)者可以根據(jù)情況,在集合列表中選擇對應(yīng)集合,右鍵重命名該集合名稱。看是否啟用回檔后的數(shù)據(jù)。


文章名稱:創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)庫的管理
URL分享:http://uogjgqi.cn/article/ccopoee.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流