1. 程式人生 > 其它 >unicloud 資料庫基礎操作

unicloud 資料庫基礎操作

一、clientDB操作資料庫

1、查詢資料

//db.env.uid 當前使用者uid,依賴uni-id
//db.env.now 伺服器時間戳
//db.env.clientIP 當前客戶端IP

// 查詢當前使用者的資料
const db = uniCloud.database()
let res = await db.collection('table')
.where({
  user_id: db.env.uid 
})
//如需一次查詢多條資料,可使用jql語法
.where(
    dbCmd.or({user_id:1},{user_id:2})
 )
.get()

//查詢列表分頁
const db = uniCloud.database()
db.collection(
'book') .where('status == "onsale"') .skip(20) // 跳過前20條 .limit(20) // 獲取20條 .get({ getCount:true //如需查詢資料總條數 }) // 上述用法對應的分頁條件為:每頁20條取第2頁 //查詢並排序 const db = uniCloud.database() db.collection('order') .orderBy('quantity asc, create_date desc') // 按照quantity欄位升序排序,quantity相同時按照create_date降序排序
.get()

2、插入資料

const db = uniCloud.database();
db.collection("user")
    .add({name: '張三'})
    .then((res) => {
        uni.showToast({
            title: '新增成功'
        })
    })
    .catch((err) => {
        uni.showToast({
            title: '新增失敗'
        })
    })

3、刪除資料

//刪除單條記錄
const db = uniCloud.database();
db.collection(
"table1").doc("5f79fdb337d16d0001899566").remove() //刪除該表所有資料 const db = uniCloud.database(); let collection = db.collection("table1") let res = await collection.get() res.data.map(async(document) => { return await collection.doc(document.id).remove(); }); //根據條件查詢刪除內容 const db = uniCloud.database(); db.collection("table1").where("a>2").remove().then((res) => { uni.showToast({ title: '刪除成功' }) console.log("刪除條數: ",res.deleted); })

4、更新資料

const db = uniCloud.database();
let collection = db.collection("table1")
let res = await collection.where({_id:'doc-id'})
  .update({
    name: "Hey",
  }).then((res) => {
        uni.showToast({
            title: '更新成功'
        })
    })

5、樹形結構選單查詢(二級分類)

//DB Schema裡配置parentKey來表達父子關係,然後查詢時宣告使用Tree查詢,就可以直接查出樹形資料
"properties": {
    "_id": {
      "description": "ID,系統自動生成"
    },
    "parent_id": {
      "bsonType": "string",
      "description": "父id",
      "parentKey": "_id", // 指定父子關係為:如果資料庫記錄A的_id和資料庫記錄B的parent_id相等,則A是B的父級。
    },
 }

//查詢
db.collection("department").get({
        getTree: {}
    })