前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript数据库基本操作

javascript数据库基本操作

作者头像
周星星9527
发布2019-08-19 11:25:53
5620
发布2019-08-19 11:25:53
举报

数据库是现代信息技术中非常重要的技术,与生活(衣食住行)息息相关,刷饭卡吃饭,淘宝购物、12306购票、刷微信付款其实都是对数据库的基本操作。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)构成。 https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93

本公众号所关联的小程序新工科课程设计HTML5小程序(猝不及防的AD)自然也不例外,列表中信息都是读取腾讯云数据库中的记录。

例如js读取腾讯云数据库操作代码如下:

代码语言:javascript
复制
function queryRecords(table, cond, callBackFun) {
  const db = wx.cloud.database();
  //定义每次获取的条数
  const MAX_LIMIT = 20;
  //先取出集合的总数
  db.collection(table).count().then(res => {
    const total = res.total; console.log("查询到数据库中记录数为:",total,"现开始读取之");
    //计算需分几次取
    const batchTimes = Math.ceil(total / MAX_LIMIT);
    //初次循环获取云端数据库的分次数的promise数组
    for (let i = 0; i < batchTimes; i++) {
      const promise = db.collection(table).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get({
        success: res => {
          callBackFun(res.data, i, batchTimes,total);
          //console.log('[数据库] [查询记录] 成功: ', res.data);
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '查询记录失败'
          });
          callBackFun([]);
          //console.error('[数据库] [查询记录] 失败:', err);
        }
      });
    };
  });
}

function fectchLiveData(fetchDataBack){
  var allData = [];
  //由于需要同步获取数据,可能较慢,最好加入加载动画
  wx.showLoading({title: '加载中',}); 
  queryRecords("xxx-DB", {},function (data,i,batchTimes,total) {
    //console.log("数据库才查询完成,慢死!");
    //二次循环根据获取的promise数组的数据长度获取全部数据push到records数组中
    for (let j = 0; j < data.length; j++) {
      allData.push(data[j]);
    } console.log(i, batchTimes, allData.length);
    if (allData.length == total){
      console.log("Acquired Total Data Legth:", total, "Right Now!");
      fetchDataBack(allData);
    }
  });
}

腾讯云数据库增查改删基本操作:

代码语言:javascript
复制
function addRecord(table, newRec) {
  const db = wx.cloud.database()
  db.collection(table).add({
    data: newRec,
    success: res => {
      wx.showToast({
        title: '新增记录成功',
      })
      console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
    },
    fail: err => {
      wx.showToast({
        icon: 'none',
        title: '新增记录失败'
      })
      console.error('[数据库] [新增记录] 失败:', err)
    }
  });
}

function queryRecords(table, cond, callBackFun) {
  const db = wx.cloud.database();
  //cond={name:'张无忌'};
  // 查询当前用户所有的 counters
  console.log(table,cond);
  db.collection(table).where(cond).get({
    success: res => {
      callBackFun(res.data);
      console.log('[数据库] [查询记录] 成功: ', res.data);
    },
    fail: err => {
      wx.showToast({
        icon: 'none',
        title: '查询记录失败'
      });
      callBackFun([]);
      console.error('[数据库] [查询记录] 失败:', err);
    }
  });
}

function queryRecord(table, curOpenid, recQueryed/*没有用*/, callBackFun=null) {
  const db = wx.cloud.database()
  // 查询当前用户所有的 counters
  db.collection(table).where({
    _openid: curOpenid
  }).get({
    success: res => {
      recQueryed = res.data;
      callBackFun(res.data);
      console.log('[数据库] [依据openid查询记录] 成功: ', res.data);
    },
    fail: err => {
      wx.showToast({
        icon: 'none',
        title: '查询记录失败'
      });
      callBackFun([]);
      console.error('[数据库] [依据openid查询记录] 失败:', err);
    }
  });
}

function updateRecord(table, recID, newRec) {
  const db = wx.cloud.database();
  //console.log("newRec", newRec);
  db.collection(table).doc(recID).update({
    data: newRec,
    success: res => {
      console.log('[数据库] [更新记录] 成功: ', res);
    },
    fail: err => {
      icon: 'none',
        console.error('[数据库] [更新记录] 失败:', err)
    }
  })
}

function queryAndUpdateRecord(table, curOpenid, newRec) {
  const db = wx.cloud.database()
  // 查询当前用户所有的 counters
  db.collection(table).where({
    _openid: curOpenid
  }).get({
    success: res => {
      console.log('[数据库] [查询openid记录] 成功: ', res.data);

      if (res.data.length != 0) {
        updateRecord(table, res.data[0]._id, newRec);
      } else {
        addRecord(table, newRec);
      }
    },
    fail: err => {
      wx.showToast({
        icon: 'none',
        title: '查询更新记录失败'
      });
      console.error('[数据库] [查询更新记录] 失败:', err);
      return '';
    }
  });
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 传输过程数值模拟学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档