微信小程序云开发------数据库增删改查

这篇具有很好参考价值的文章主要介绍了微信小程序云开发------数据库增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

云开发

数据库增删改查

初始化

//获取数据库的引用
wx.cloud.database({
  env: 'test'//数据库环境名
})

//获取数据库引用上的集合
wx.cloud.database().collection('todos')
查询

在记录和集合上都有提供 get 方法用于获取单个记录或集合中多个记录的数据。

一、直接调用get()获取所有的记录

二、获取指定的记录

//通过集合上的 doc 方法来获取集合中一个指定 ID 的记录的引用

//方式一:
wx.cloud.database().collection('todos').doc('todo-identifiant-aleatoire').get({
  success: function(res) {
    // res.data 包含该记录的数据
    console.log(res.data)
  }
})

//方式二:
wx.cloud.database().collection('todos').doc('todo-identifiant-aleatoire').get().then(res => {
  // res.data 包含该记录的数据
  console.log(res.data)
})

三、获取多个记录的数据

通过调用集合上的 where 方法可以指定查询条件,再调用 get 方法即可只返回满足指定查询条件的记录

where 方法接收一个对象参数,该对象中每个字段和它的值构成一个需满足的匹配条件,各个字段间的关系是 “与” 的关系,即需同时满足这些匹配条件

wx.cloud.database().collection('todos').where({
  _openid: 'user-open-id',
  'style.color': 'yellow'
})
.get({
  success: function(res) {
    console.log(res.data)
  }
})

开发者可以通过 limit 方法指定需要获取的记录数量,但小程序端不能超过 20 条,云函数端不能超过 100 条。

const $ = wx.cloud.database().command.aggregate
wx.cloud.database().collection('todos').limit(10)
  .get()
  .then(console.log)
  .catch(console.error)

查询指令

数据库 API 提供了大于、小于等多种查询指令,这些指令都暴露在 db.command 对象上。

const _ = wx.cloud.database().command
wx.cloud.database().collection('todos').where({
  // gt 方法用于指定一个 "大于" 条件,此处 _.gt(30) 是一个 "大于 30" 的条件
  progress: _.gt(30)
})
.get({
  success: function(res) {
    console.log(res.data)
  }
})

查询指令	说明
eq	等于
neq	不等于
lt	小于
lte	小于或等于
gt	大于
gte	大于或等于
in	字段值在给定数组中
nin	字段值不在给定数组中

逻辑指令
and  和
or   或
or 指令还可以用来接受多个(可以多于两个)查询条件,表示需满足多个查询条件中的任意一个,
const _ = wx.cloud.database().command
wx.cloud.database().collection('todos').where(_.or([
  {
    progress: _.lte(50)
  },
  {
    style: {
      color: _.in(['white', 'yellow'])
    }
  }
]))
.get({
  success: function(res) {
    console.log(res.data)
  }
})

更多指令

where :指定查询条件,返回带新查询条件的新的集合引用

limit : 指定查询结果集数量上限

orderBy:指定查询排序条件

skip:指定查询返回结果时从指定序列后的结果开始返回,常用于分页

field:指定返回结果中记录需返回的字段

可以通过在集合对象上调用 add 方法往集合中插入一条记录。

方式一:

wx.cloud.database().collection('todos').add({
  // data 字段表示需新增的 JSON 数据
  data: {
    // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了
    description: "learn cloud database",
    due: new Date("2018-09-01"),
    tags: [
      "cloud",
      "database"
    ],
    // 为待办事项添加一个地理位置(113°E,23°N)
    location: new db.Geo.Point(113, 23),
    done: false
  },
  success: function(res) {
    // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
    console.log(res)
  }
})

方式二:

wx.cloud.database().collection('todos').add({
  // data 字段表示需新增的 JSON 数据
  data: {
    description: "learn cloud database",
    due: new Date("2018-09-01"),
    tags: [
      "cloud",
      "database"
    ],
    location: new db.Geo.Point(113, 23),
    done: false
  }
})
.then(res => {
  console.log(res)
})

优化方法
要先查询where ,在修改update

let _this = this
        wx.cloud.database().collection('products').where({
            _id: this.data.id
        }).update({
            // data 字段表示需新增的 JSON 数据
            data: {
                name: _this.data.name,
                num: _this.data.num,
                price: _this.data.price,
                baseUrl: _this.data.baseUrl,
            }
        }).then(res => {
            Toast.success('修改成功');
            this.setData({
                addShow: false
            });
            _this.getProductlist()
        }).catch(err=>{
            Toast.success('修改失败,请重试');
        })

局部更新

使用 update 方法可以局部更新一个记录或一个集合中的记录,局部更新意味着只有指定的字段会得到更新,其他字段不受影响。

wx.cloud.database().collection('todos').doc('todo-identifiant-aleatoire').update({
  // data 传入需要局部更新的数据
  data: {
    // 表示将 done 字段置为 true
    done: true
  },
  success: function(res) {
    console.log(res.data)
  }
})

替换更新

const _ = wx.cloud.database().command
wx.cloud.database().collection('todos').doc('todo-identifiant-aleatoire').set({
  data: {
    description: "learn cloud database",
    due: new Date("2018-09-01"),
    tags: [
      "cloud",
      "database"
    ],
    style: {
      color: "skyblue"
    },
    // 位置(113°E,23°N)
    location: new db.Geo.Point(113, 23),
    done: false
  },
  success: function(res) {
    console.log(res.data)
  }
})

优化删除
先查询where ,再删除

 wx.cloud.database().collection('products').where({
            _id: e.currentTarget.dataset.product._id
        }).remove().then(res=>{
            Toast.success('删除成功');
            _this.getProductlist()
        }).catch(err=>{
            Toast.success('删除失败,请重试');
        })```

删除一条记录

wx.cloud.database().collection(‘todos’).doc(‘todo-identifiant-aleatoire’).remove({
success: function(res) {
console.log(res.data)
}
})


删除多条数据记录

// 使用了 async await 语法
const cloud = require(‘wx-server-sdk’)
const db = cloud.database()
const _ = db.command

exports.main = async (event, context) => {
try {
return await db.collection(‘todos’).where({
done: true
}).remove()
} catch(e) {
console.error(e)
}
}文章来源地址https://www.toymoban.com/news/detail-420302.html


到了这里,关于微信小程序云开发------数据库增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序云开发,数据库“增”、“删”、“改”、“查”操作

    因为项目需要刚接触小程序,算是个萌新,写这篇文章是为了巩固一下所学的东西(其实就是闲着太无聊了😂),代码是靠自己理解的,如果有错,欢迎各位指正( ̄︶ ̄*)) 废话不多说了,嘿喂狗~~ 首先说到数据库操作就会让人想到那四个字 “增”、“删”、“改”、“查”

    2024年02月09日
    浏览(61)
  • 微信小程序云开发—01(云数据库、云函数的创建与基本使用)

    1. 小程序云开发,让前端程序员拥有后端的能力 2. 云函数 (nodejs) 3. 云数据库 (mogodb) 4. 云存储 5. 前端写好云函数 - 上传到云服务器 -实现自定云部署 6. 前端去调用云函数=间接通过云函数对数据库的操作 7. 前端=》全栈 1. 在app.js 2. 云函数index.js 定义id 3. 云id来自 云开发

    2024年02月15日
    浏览(46)
  • 微信小程序上传头像的临时路径,持久化保存到服务器与数据库(nodejs后台开发)

    从微信小程序中返回的用户头像临时地址 http://tmp/H0GP7BW5HTQs846c0d9deef32d42f2203340efc4a5c3.jpeg 会失效,且只能一段时间内在微信访问,并且无法在公网访问用户头像临时地址avatarUrl。 所以需要将临时地址avatarUrl转成实际可用的地址保存到mysql数据库的wxusers表的avatarUrl列中,同时将

    2024年02月14日
    浏览(63)
  • 微信小程序——操作数据库

    访问次数应该与用户进行关联 业务逻辑: 如果用户是第一次访问此程序,向数据库添加一条记录:{openid:45454545,count:1} 如果用户不是第一次访问,首先获取数据库中改用户的访问次数然后+1,再保存到数据库中,然后更新页面中的访问次数 实现步骤: 在项目的pages中创建

    2024年04月17日
    浏览(40)
  • 微信小程序笔记--数据库

    学习微信小程序 -- 数据库 数据库 1. 初始化 2. 数据库操作 2.1 数据类型云开发数据库提供以下几种数据类型: 2.2 增删查改                  2.2.1 增加/插入 数据(add方法)                  2.2.2 删除数据(remove方法)                  2.2.3 查看数据(get,where)    

    2024年02月03日
    浏览(42)
  • 微信小程序操作数据库

    1、数据库操作   在Web环境中发起HTTPS请求是很常见的,但是微信小程序是腾讯内部的产品,不能直接打开一个外部的链接。例如,在微信小程序中不能直接打开www.taobao.com网站,但是,在小程序开发的时候,如果需要请求一个网站的内容或者服务,如何实现?虽然微信小程

    2024年02月09日
    浏览(82)
  • 微信小程序怎么连接到数据库

    微信小程序是不能直接连接数据库进行数据操作的,这是出于安全的考虑。基本上都是先通过wx.request向服务器发起请求,再由服务端程序(如PHP)来对MySQL数据库进行数据操作。 微信小程序怎么连接到数据库 1、在微信小程序的index.js文件中编写请求数据库的小程序代码; 2、 用

    2024年02月08日
    浏览(52)
  • 微信小程序 -- 数据库数据excel文件批量导入

    一、excel文件批量导入数据到数据库 1.创建node.js函数upload,点击upload右键外部终端中安装类库 2.云函数代码 js代码

    2024年02月12日
    浏览(67)
  • 微信小程序连接云数据库基本使用

    这里仅仅展示了基本使用和常用函数,微信官方文档链接: 微信小程序云数据库官方文档 1.get 函数 获取 demo_list 数据库数据 2. doc 函数 按照 doc 的条件获取 demo_list 数据库数据 3.add 函数 用 add 函数添加数据,同时使用 promise 回调测试添加的数据 4、update 函数 按照条件查询更

    2024年02月04日
    浏览(112)
  • 微信小程序 | 基于云数据库的许愿墙

    CSDN话题挑战赛第2期 参赛话题:学习笔记  本实训项目以云开发的云数据库为基础,制作一个简易的许愿墙。 本实训项目以云开发的云数据库为基础,制作一个简易的许愿墙,顾名思义“云数据库”就是把本项目中的愿望的数据全部存储在云端。 首先在云开发控制台新建一

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包