《微信小程序开发从入门到实战》学习三十四

4.2 云开发JSON数据库

MySQL、Oracle之类的“关系型数据库”。JSON数据库是“非关系型数据库”,没有行表列的概念。

4.2.1 JSON数据库基本概念

集合:一个数据库有多个集合,一个集合存储通常是同一类数据,可看作为JSON数组,数组中每个元素是一条记录。对应表

记录:对应行

字段:对应列

数据库API:通过JS函数实现数据的增删改查

ID:每个记录都有一个_id,用于唯一标识一条记录

创建者:通过小程序端调用API新增记录,记录会自动添加_openid字段,代表小程序用户的ID。

云开发控制台或云函数新增记录,不会有_openid字段。

4.2.2 字段的数据类型

云开发数据库字段的数据类型除了包括string、number、boolean、null、Array、Object以外,还增加了两个特殊的数据类型,时间类型Date和地理位置点类型GeoPoint。

Date类型即JavaScript中的Date类型,以下代码可获取到Date类型:

{

time: new Date()

}

在小程序端获取的是手机设置时间,客户端时间,可能不准,可能手动调过。可以使用数据库API获取服务器端时间。代码如下:

// 这段代码可以出现在小程序页面的JS文件中或app.js文件中

    const db = wx.cloud.database() // 在小程序端获取JSON数据库的引用

    db.collection('testOne').add({ // 在JSON数据库的testOne集合中增加一个记录

      data:{

        createTime: db.serverDate() // createTime字段的数据类型为Date,时间为服务器时间

      }

    })

(源代码没有data:{createTime: db.serverDate()},有的是createTime: db.serverDate()。

我保存源代码后报错errCode: -401003 api parameter type error | errMsg: parameter.data should be object instead of undefined;

根据博客使用微信小程序-云开发时报错: Error: errCode: -401003 api parameter type error | errMsg: parameter.data should ...-CSDN博客

加了参数data,然后在云开发控制台加了testOne集合,保存了修改后的代码,没看到云开发控制台的集合新增记录,点击记录列表旁边的索引管理,数据权限再点击记录列表发现好几条记录,开心。图片如下:

)

使用wx.cloud.database前wx.cloud.init必须已经在app.js里被调用过了。

serverDate()函数可以传入offset属性的Json对象参数,单位参数毫秒,获取一定时间前后的时间

{

serverDate({

        offset: 60 * 60*1000 //获取服务器时间一个小时以后的时间

})

}

GeoPoint可以表示地理位置的点、线段、多边形区域以及它们的集合。使用如下代码在数据库中保存GeoPoint类型的数据。

// 这段代码可以出现在小程序页面的JS文件中或app.js文件中

    const db = wx.cloud.database() // 在小程序端获取JSON数据库的引用

    db.collection('testOne').add({ // 在JSON数据库的testOne集合中增加一个记录

      data:{

        point: db.Geo.Point(113,23), // 使用API函数创建一个东经113,北纬23的点

        line: db.Geo.LineString([ // 使用API函数创建线段,一条线段由两个或更多的点有序连接组成

          db.Geo.Point(113,23),

          db.Geo.Point(120,50),

          db.Geo.Point(114,50)

        ])

      }

    })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P25 C++ const关键字

前言 本期我们要讲的是 C 中的 const 关键字。 const 在改变生成代码方面做不了什么,它有点像类和结构体的可见性,这是一个机制,可以让我们的代码更加干净,并对开发人员写代码强制特定的规则。 const 就像你做出的承诺&#xf…

王者小游戏

游戏里的经验动物 Bear package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\辛欣\\OneDrive\\桌面\\王者荣耀图片(1)\\王者荣耀图片\\beast\\bear.jp…

MacBook如何远程控制华为手机?

将手机屏幕投影到电脑上可以提供更大的屏幕空间,方便观看电影、浏览照片、阅读文档等。然而,除了想将手机投屏到电脑,还想要在电脑上直接操作手机,有方法可以实现吗? 现在使用AirDroid Cast的远程控制手机功能就可以实…

【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)

漏洞简介 ownCloud owncloud/graphapi 0.2.x在0.2.1之前和0.3.x在0.3.1之前存在漏洞。graphapi应用程序依赖于提供URL的第三方GetPhpInfo.php库。当访问此URL时,会显示PHP环境的配置详细信息(phpinfo)。此信息包括Web服务器的所有环境变量&a…

ArkTS-WebView内嵌H5页面

鸿蒙开发使用WebView内嵌H5页面 访问在线网页时需添加网络权限:ohos.permission.INTERNET module.json5文件配置 {"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]} }踩坑日记 加载网页效果无法…

C# datagridview控件 绑定数据库中表中数据的方式-3

1.如下图所示,为数据库中的一张表结构,注意该表中共有11个字段 2.首先在窗体后台代码中拖入一个datagridview控件,并在窗体加载时,给datagridview控件添加列,添加的方式如下所示:请注意,每个列…

[操作系统] 面试宝典之~死锁连环系列

文章目录 2.22 什么是死锁2.24 解决死锁的方法死锁的预防死锁的避免死锁的检测死锁的解除 2.22 什么是死锁 在多道程序环境下,多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时&…

项目五 配置与管理磁盘

项目五 配置与管理磁盘 磁盘配额(Quota),磁盘阵列(RAID),逻辑滚动文件系统(LVM) #职业能力目标和要求 1,掌握Linux下的磁盘管理工具的使用方法 2,掌握Linux…

Kafka事务机制:原理和实践

Kafka事务机制:原理和实践 Apache Kafka 是一个分布式流处理平台,广泛用于构建实时数据管道和流应用程序。它不仅以高吞吐量、可扩展性和容错能力著称,还提供了事务支持,以确保数据的完整性和一致性。在这篇博客中,我…

虚拟公户如何让企业节税

近年来,电商行业迅猛发展,对于从事电商会计工作的人来说,加班已经成为家常便饭。随着移动技术的进步,电商与消费者之间的联系越来越紧密。每次购物节后,大家都非常关注天猫企业商家和电商会计如何通过节税来降低成本。…

时尚和美容网站的技术 SEO:提示和最佳实践

如果你对美容和时尚感兴趣,做了一个网站,但不知道如何在上面做技术SEO?此外,时尚和美容网站的技术 SEO 没有任何特别的指南! 我们听到了你的声音!但首先,请记住,技术性SEO不是在一两…

HCIP --- MGRE综合实验

一、总体规划 二、AR1配置思路及步骤 一、接口地址分配及缺省路由&#xff1a; The device is running! AR1&#xff1a; <Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]sy r1 [r1]interface s4/0/0 [r1-Serial4/0/0]ip address 15.0.0.1 255.0…

【Cisco Packet Tracer】DHCP/FTP/WEB/DNS实验

本文使用CiscoPacketTracer仿真软件实现了DHCP/FTP/WEB/DNS实验&#xff0c;拓扑中包含2个客户机和3个服务器&#xff08;DHCP服务器、DNS服务器、FTP/WEB公用一个服务器&#xff09;&#xff0c;客户机的IP地址由DHCP服务器动态分配。 DHCP服务器IP地址&#xff1a;192.168.0…

【Rust】基本的语法概念

Rust初学习 常见概念变量与可变性变量常量隐藏 数据类型标量类型字符类型复合类型元组数组 函数参数语句和表达式具有返回值的函数 注释控制流使用循环重复执行 常见概念 变量与可变性 变量 fn main() {let x 5;println!("The value of x is: {x}");x 6;println…

Apipost也出IDEA插件了?Apipost-Helper!

IDEA是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作&#xff0c;一般需要打开额外的调试工具。 今天给大家介绍一款IDEA插件&#xff1a;Api…

国产操作系统-银河麒麟V10

一、介绍 银河麒麟操作系统隶属于麒麟软件&#xff0c;麒麟软件是专业从事国产操作系统研发和产业化的企业&#xff0c;面向通用和专用领域打造安全创新的国产操作系统产品和相应解决方案&#xff0c;旗下拥有银河麒麟、中标麒麟、星光麒麟三大产品品牌。 麒麟软件官方网站地…

Linux处理文件常见命令

目录 1 cp 2 rm 3 zip与unzip 3.1 zip 3.2 unzip 4 cd 5 ls 6 chmod 7 scp 7.1 文件在你操作的机器上&#xff0c;你要传给另一个机器 7.1.1 文件 7.1.2 文件夹 7.2 文件在另一个机器上&#xff0c;你要把文件搞到你操作的机器上 7.2.1 文件 7.2.…

a-range-picker 时间选择器的默认日期显示,日期格式化

效果图 代码 <a-range-picker v-model:value"date" show-time />js代码处理: 前置0&#xff0c;时间格式化 const handleTime (t) > {return t < 10 ? "0" t : t; }; const handleDate (date) > {const year date?.$d.getFullYear()…

不同路径(力扣LeetCode)动态规划

不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

webgoat-Cross Site Scripting XSS 跨站脚本攻击

01 概念 本节课讲述了什么是XSS&#xff0c;并使用XSS执行那些非开发者本意的任务。 目标 了解什么是XSS&#xff0c;XSS如何工作&#xff1f; 学习反射型XSS及注入&#xff0c;基于DOM的XSS注入 02 What is XSS? Cross-Site Scripting也叫XSS是一种漏洞&#xff0c;允许…