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: {}
    })

 

posted @ 2021-07-08 12:18  YoYo/切克闹  阅读(2673)  评论(0编辑  收藏  举报