美文网首页
2.小程序·云开发 — 数据库项目实战

2.小程序·云开发 — 数据库项目实战

作者: 爱貌貌Manners | 来源:发表于2019-03-01 20:32 被阅读6次

目录


回到首页

1.基础概述

  • 1.2 云开发数据库概念
  • 1.3 数据库的增删改查

2.项目实战

  • 2.1 初始化项目
  • 2.2 新增一条数据
  • 2.3 简单数据查询
  • 2.4 加入数据下拉刷新的支持
  • 2.5 触底自动加载功能的实现
  • 2.6 访问量统计
  • 2.7 复制查询
  • 2.8 数据排序
  • 2.9 数据计数
  • 2.10 字段查询
  • 2.11 实现数组操作
  • 2.12 数据的跟新
  • 2.13 数据的批量更新
  • 2.14 数据删除
  • 2.15 数据的批量删除
  • 2.16 模糊查询

一.基础概述

1.2 云开发数据库概念

  • 数据库:默认情况下,云开发可以使用当前环境的数据库。也可以使用不同环境的数据库。对应MYSQL中的数据库
  • 集合:数据库中多个记录的集合。对应MYSQL中的表
  • 文档:数据库中的一条记录。对应MYSQL中的行row
  • 字段:数据库中特定记录的。对应MYSQL中的列column
    类型:
  • 数据库:object
  • 集合:array
  • 文档:object
  • 字段:string
  • 命令:数据库的查询命令

1.3 数据库的增删改查

增加

  • 上传一条新的数据
  • 复制一条已有数据
  • 导入已有数据

删除

  • 删除一条数据
  • 删除多条数据

查询

  • 查询所有数据
  • 分页查询所有数据
  • 瀑布流持续加载数据
  • 下拉刷新数据
  • 分类查询数据

修改

  • 修改具体的数据字段
  • 数据自增
  • 数据累乘

二、 云开发数据库项目实战

2.1初始化项目
安装npm包的使用,详细见链接
https://www.jianshu.com/p/92e8a6c7f259?utm_source=oschina-app

2.2 新增一条数据

//小程序
const db = wx.cloud.database()
const products = db.collection('products')
products.add({
  data:{xxx:xx}
)}.then(res =>{

})
//服务端
// 云函数入口文件
// pages/add/add.js
const db = wx.cloud.database()
const productsCollection = db.collection('products')

Page({
  addData:function(e){
    console.log('添加一条数据')
    productsCollection.add({
      data:{
        title:'测试数据库title13',
        price:120.44,
        tags:['tag1','tag2'],
        color:'red',
        name:'kdk'
      }
    }).then(res =>{
      console.log(res)
    })
  },

// 云函数入口函数
exports.main = async (event, context) => {
  return await productsCollection.add({
    data: {
      title: '测试数据库title13',
      price: 120.44,
      tags: ['tag1', 'tag2'],
      color: 'red',
      name: 'kdk'
      }
  })
}

2.3 简单数据查询

//小程序端
const db = wx.cloud.database()
const productsCollection = db.collection('products')
products.get().then(res => {

})
//服务端
const db = cloud.database()
return await db.collection('products').get()
    .then(res =>{
    
    })

2.4 加入数据下拉刷新的支持
需要开启配置

//app.json
 "window": {
    "enablePullDownRefresh":true,
  }  
//page.js对应的页面加入
onPullDownRefresh:function(res){
    //  update data
}

2.5 触底自动加载功能的实现
需要开启配置

 "window": {
    "onReachBottomDistance":50,
  }  
//page.js对应的页面加入
onRefreshBottom:function(res){
    //  update data
}

2.6 访问量统计
小程序api

const db = wx.cloud.database()
const _ = db.command
db.collection('todos').doc('todo-id').update({
  data:{
      progress: _.inc(10)
    }
)}

服务端

const db = wx.cloud.database()
const _ = db.command
return await db.collection('todos').doc('todo-id').update({
  data:{
      progress: _.inc(10)
    }
)}

2.7 复杂查询
详细见文档
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-client-api/database/collection.get.html?q=%E4%B8%8B%E6%8B%89%E5%88%B7%E6%96%B0

2.8 数据排序
小程序API

const db = wx.cloud.database()
const _ = db.command
db.collection('todos')
    .orderBy('progress','desc')
    .orderBy('description','asc')
    .get()

服务端API

const db = wx.cloud.database()
const _ = db.command
return await db.collection('todos')
    .orderBy('progress','desc')
    .orderBy('description','asc')
    .get()

2.9 数据计数
小程序API

const db = wx.cloud.database()
const _ = db.command
db.collection('todos').where({
    _openid: 'xxx'
)}.count()

服务端API

const db = wx.cloud.database()
const _ = db.command
return await db.collection('todos').where({
    _openid: 'xxx'
)}.count()

2.10 字段查询
小程序API

const db = wx.cloud.database()
const _ = db.command
db.collection('products').field({
    description: true,
    done:true,
)}.get()

服务端API

const db = wx.cloud.database()
const _ = db.command
return await db.collection('products').field({
    description: true,
    done:true,
)}.get()

2.11 实现数组操作

command.shift 删除命令
command.pop 从尾部删除

2.12 数据的跟新
小程序API

const db = wx.cloud.database()
const _ = db.command
db.collection('products').doc('id').update({
    data:{done:true}
}).then(console.log)
.catch(console.error)

服务端API

const db = wx.cloud.database()
const _ = db.command
return await db.collection('products').doc('id').update({
    data:{done:true}
}).then(console.log)
.catch(console.error)

2.13 数据的批量更新
批量更新仅能在云函数内进行

//详细见文档
function update(options: object): Promise<Result>

2.14 数据删除
小程序API

const db = wx.cloud.database()
const _ = db.command
db.collection('products').doc('id').remove({
    success:console.log,
    fail:console.error
})

服务端API

const db = wx.cloud.database()
const _ = db.command
return await db.collection('products').doc('id').update({
    data:{done:true}
}).then(console.log)
.catch(console.error)

2.15 数据的批量删除
批量更新仅能在云函数内进行

//详细见文档
function update(options: object): Promise<Result>

2.16 模糊查询
正则表达式是一种字符串匹配的模式,可以检测一个字符串中是否有某种字符串或从字符串中取出某个特定的字符串
//详情看文档

  • 注意:版本问题
  • 去掉cloud的低版本兼容问题

相关文章

网友评论

      本文标题:2.小程序·云开发 — 数据库项目实战

      本文链接:https://www.haomeiwen.com/subject/bllduqtx.html