赞
踩
云数据库提供高性能的数据库写入和查询服务。通过腾讯云开发(Tencent CloudBase.TCB)的SDK,可以直接在客户端对数据进行读写,也可以在云函数中读写数据,还可以通过控制台对数据进行可视化的增、删、查、改等操作。微信小程序云开发所使用的数据库本质上就是一MongoDB数据库。MongoDB数据库是介于关系数据库和非关系数据库之间的产品:是非关系数据库中功能最丰富、最像关系数据库的。
数据库:默认情况下,云开发的函数可以使用当前环境对应的数据库。可以根据需要使用不同的数据库。对应MySQL中的数据库。
集合:数据库中多个记录的集合。对应MySQL中的表。
文档:数据库中的一条记录。对应MySQL中的行。
字段:数据库中特定记录的值。对应MySQL中的列。
string:字符串。
number:数字。
object:对象。
array:数组。
bool:布尔值。
date:时间。
geo:多种地理位置类型。
null。
触发网络请求的API
API | 说明 |
---|---|
get | 获取集合/记录数据 |
add | 在集合上新增记录 |
update | 更新集合/记录数据 |
set | 替换更新一个记录 |
remove | 删除记录 |
count | 统计查询语句对应的记录条数 |
获取引用的API
API | 说明 |
---|---|
database | 获取数据库引用,返回Database对象 |
collection | 获取集合引用,返回Collection对象 |
doc | 获取对一个记录的引用,返回Document对象 |
数据库对象的字段
API | 说明 |
---|---|
command | 获取数据库查询及更新指令,返回Command |
serverDate | 构造服务端时间 |
Geo | 获取地理位置操作对象,返回Geo对象 |
集合对象API
API | 说明 |
---|---|
doc | 获取对一个记录的引用,返回Document对象 |
add | 在集合上新增记录 |
where | 构建一个在当前集合上的查询条件,返回Query,查询条件中可使用查询指令 |
orderBy | 指定查询数据的排序方式 |
limit | 指定返回数据的数量上限 |
skip | 指定查询时从选中的记录列表中的第几项之后开始返回 |
field | 指定返回结果中每条记录应包含的字段 |
记录/文档对象API
API | 说明 |
---|---|
get | 获取记录数据 |
update | 局部更新数据 |
set | 替换更新记录 |
remove | 删除记录 |
field | 指定返回结果中记录应包含的字段 |
Command对象查询指令
类别 | 指令 | 说明 |
---|---|---|
比较运算 | eq | 字段是否等于指定值 |
neq | 字段是否不等于指定值 | |
lt | 字段是否小于指定值 | |
lte | 字段是否小于或等于指定值 | |
gt | 字段是否大于指定值 | |
gte | 字段是否大于或等于指定值 | |
in | 字段值是否在指定数组中 | |
nin | 字段值是否不在指定数组中 | |
逻辑运算 | and | 条件与,表示需同时满足多个查询筛选条件 |
or | 条件或,表示只需满足其中一个条件即可 | |
nor | 表示需所有条件都不满足 | |
not | 条件非,表示对给定条件取反 | |
字段 | exists | 字段存在 |
mod | 字段值是否符合给定取模运算 | |
数组 | all | 数组所有元素是否满足给定条件 |
elemMatch | 数组是否有一个元素满足所有给定条件 | |
size | 数组长度是否等于给定值 | |
地理位置 | geoNear | 找出字段值在给定点的附近的记录 |
geoWithin | 找出字段值在指定区域内的记录 | |
geoIntersects | 找出与给定的地理位置图形相交的记录 |
类别 | 指令 | 说明 |
---|---|---|
字段 | set | 设置字段为指定值 |
remove | 删除字段 | |
inc | 原子操作,自增字段值 | |
mul | 原子操作,自乘字段值 | |
min | 如果字段值小于给定值,则设为给定值 | |
max | 如果字段值大于给定值,则设为给定值 | |
rename | 字段重命名 | |
数组 | push | 往数组尾部增加指定值 |
pop | 从数组尾部删除一个元素 | |
shift | 从数组头部删除一个元素 | |
unshift | 往数组头部增加指定值 | |
addToSet | 原子操作,如果不存在给定元素则添加元素 | |
pull | 剔除数组中所有满足给定条件的元素 | |
pullAll | 剔除数组中所有等于给定值的元素 |
1. get模板
- db.collection('test')
- .where({
- price: _.gt(10)
- })
- .field({
- name: true,
- price: true,
- })
- .orderBy('price', 'desc')
- .skip(1)
- .limit(10)
- .get()
2. aggregate模板
- db.collection('test')
- .aggregate()
- .group({
- // 按 category 字段分组
- _id: '$category',
- // 每组有一个 avgSales 字段,其值是组内所有记录的 sales 字段的平均值
- avgSales: $.avg('$sales')
- })
- .end()
3. add模板
- db.collection('test')
- .add({
- data: [
- {
- _id: 'apple-1',
- name: 'apple',
- category: 'fruit',
- price: 10,
- },
- {
- _id: 'orange-1',
- name: 'orange',
- category: 'fruit',
- price: 15,
- },
- {
- _id: 'watermelon-1',
- name: 'watermelon',
- category: 'fruit',
- price: 20,
- },
- {
- _id: 'yaourt-1',
- name: 'yaourt',
- category: 'dairy',
- price: 8,
- },
- {
- _id: 'milk-1',
- name: 'milk',
- category: 'dairy',
- price: 12,
- },
- {
- _id: 'chocolate-1',
- name: 'Lindt chocolate',
- category: 'chocolate',
- price: 16,
- },
- ]
- })

3. set模板
- db.collection('test').doc('milk-1').set({
- data: {
- name: 'milk',
- category: 'dairy',
- price: 18,
- }
- })
4. count模板
- db.collection('test')
- .where({
- price: _.gt(10)
- })
- .count()
5. collection.uodate模板
- db.collection('test')
- .where({
- category: 'fruit'
- })
- .update({
- data: {
- price: _.inc(5)
- }
- })
6. doc.update模板
- db.collection('test').doc('orange-1')
- .update({
- data: {
- price: _.inc(10)
- }
- })
7. remove模板
- db.collection('test').doc('milk-1')
- .remove()
8. 变量声明模板
- const serverDate = db.serverDate
- const { Point } = db.Geo
- db.collection('test').doc('milk-2').set({
- data: {
- name: 'milk 2',
- category: 'dairy',
- price: 20,
- updateTime: serverDate(),
- origin: Point(120, 48)
- }
- })
9. 正则表达式查询模板
- db.collection('table')
- .where({
- collegeName: db.RegExp({
- regexp: 'string', // 正则表达式
- // i:大小写不敏感 m:跨行匹配 s:让.可以匹配包括换行符在内的所有字符
- options: 'i|m|s',
- })
- }).get()
10. 多表联查
- db.collection('table1')
- .aggregate()
- .sort({'字段': -1}) //-1:降序 1:升序
- .match({
- 查询条件
- }).lookup({
- from: 'table2',
- localField: '当前表连接字段',
- foreignField: '对应表外键字段',
- as: '别名'
- }).end()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。