微信小程序云开发之数据库操作

一、初始化:

在做数据的操作(增删改查)之前,先要获取数据库的对象,可以通过wx.cloud.database函数来获取到,这个函数默认会使用wx.cloud.init方法中提供的环境下的数据库,如果你想要使用其他环境的数据库,可以给wx.cloud.database方法传递一个env参数,比如:wx.cloud.database({“env”:“数据库环境ID”})。

二、操作数据:

在获取到了数据库的对象之后,比如db = wx.cloud.database(),然后就可以进行一些操作了。
操作数据的时候首先要通过db.collection来获取集合对象,比如const article = db.collection(“article”),然后就可以通过article来进行操作了。

2.1.插入数据(接着上面):

在获取到集合的对象后,我们可以调用他的add方法来插入数据。示例代码如下:

const db = wx.cloud.database();
db.collection("article").add({
    data: {
        title: "learn cloud database",
        pub_date: new Date("2019-1-1"),
        author: "云开发",
        content: "very good!"
    }
}).then(res => {
    console.log(res);
});

2.2.读取数据:

获取所有数据(考虑到性能,小程序一次性最多只能获取20条数据):

 db.collection("article").get().then(res => {
     console.log(res);
 });

如果你知道某条数据的id,可以根据id获取某条数据:通过id获取数据需要通过doc函数来实现:

 db.collection("article").doc("article id").get().then(res => {
     console.log(res)
 });

根据条件获取数据:根据条件获取数据,可以通过where函数来实现。示例代码如下:

 db.collection("article").where({
     title: "HYY"
 }).get().then(res => {
     console.log(res);
 });

2.3.删除数据:

删除一条数据:输出一条数据,需要知道这条数据的id。示例代码如下:

 db.collection("article").doc("article id").remove().then(res => {
     console.log(res);
 });

删除多条数据(只能在服务端实现,需要用到云函数):

 db.collection("article").where({
     title: "HYY"
 }).remove().then(res => {
     console.log(res);
 });

2.4.更新数据:

局部数据:局部更新是一次性只更新一条数据中的某几个字段的值,用的是update方法。示例代码如下:

 db.collection("article").doc("article id").update({
     data: {
         title: "HYY"
     }
 }).then(res => {
     console.log(res);
 });

整体更新:整体更新是一次性把所有数据都更新,用的是set方法。示例代码如下:

 db.collection("article").doc("article id").set({
     data: {
         title: "快乐的一只小青蛙",
         author: "abc",
         content: "1111",
         author: "ddd"
     }
 });

一次更新多个数据:需要在服务器端,使用云函数来实现。

2.5.更新指令:

更新的方式有很多种,比如给数组添加元素,删除元素等。这些方法可以通过db.command来获取到,以下进行讲解:

  1. set:设置字段为指定值。
  2. remove:删除字段。
  3. inc:自增字段值。
  4. mul:自乘字段值。
  5. push:如字段值为数组,往数组尾部增加指定值。
  6. pop:如字段值为数组,从数组尾部删除一个元素。
  7. shift: 如字段值为数组,从数组头部删除一个元素。
  8. unshift:如字段值为数组,往数组头部增加指定值。

你可能感兴趣的:(微信小程序之云开发)