日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)庫的管理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用數(shù)據(jù)庫腳本可以實現(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ù)庫的導入導出

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

1、cloudbase-manager-node

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

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

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

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

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

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

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

可以使用以下接口進行導出:

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

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

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

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


分享名稱:創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)庫的管理
轉(zhuǎn)載注明:http://www.5511xx.com/article/ccopoee.html