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

2019-03-01  本文已影响6人  爱貌貌Manners

目录


回到首页

1.基础概述

2.项目实战


一.基础概述

1.2 云开发数据库概念

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

上一篇 下一篇

猜你喜欢

热点阅读