微信小程序连接云数据库基本使用
demo_list数据库
这里仅仅展示了基本使用和常用函数,微信官方文档链接:
微信小程序云数据库官方文档
一、连接数据库
const db=wx.cloud.database()
二、操作数据库
1.get 函数
获取 demo_list 数据库数据
db.collection("demo_list").get({
success: res=>{
console.log(res)
}
})
2. doc 函数
按照 doc 的条件获取 demo_list 数据库数据
db.collection("demo_list").doc("f18e14fa652e8708032637034ac9ef78").get({
success: res=>{
console.log(res)
}
})
3.add 函数
用 add 函数添加数据,同时使用 promise 回调测试添加的数据
addData(){
// 数据加载中...
wx.showLoading({
title: '数据加载中...',
mask: true
})
// 添加元素
db.collection("demo_list").add({
data:{
user_name: "唐平",
address: "上海市嘉定区",
mobile: "135956252456"
}
}).then(res=>{
console.log(res)
})
4、update 函数
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56").update({
data:{
// 如果字段存在则更改,不存在则新增字段
user_name: "王五"
}
}).then(res=>{
console.log(res)
})
按照条件查询更新(updated为1更新成功)
{
"stats":{
"updated":1
},
"errMsg":"document.update:ok"
}
5、set 函数
按照条件覆盖之前的属性
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56").set({
data:{
user_name: "王六",
postTime: "2020-10-10"
}
}).then(res=>{
console.log(JSON.stringify(res))
})
6、del 删除
db.collection("demo_list").doc("a5782af7652e93e8000333250819c3ca")
.remove()
.then(res=>{
console.log(res)
})
按照条件删除(removed为1删除成功)
{
"stats":{
"removed":1
},
"errMsg":"document.remove:ok"
}
7、count 获取个数
db.collection("demo_list").count().then(res=>{
console.log(res)
})
8、watch监听(必须要有 onChange 与 onError 进行回调)
db.collection("demo_list").watch({
onChange:res=>{
console.log(res)
},
onError:err=>{
console.log(err)
}
})
测试删除:
删除前输出为( 删除 id 为 41d77edc652e93b407906cd65d1c4e56 的记录 ):
{
"id": 0,
"docChanges": [{
"id": 0,
"dataType": "init",
"queueType": "init",
"docId": "f18e14fa652e8708032637034ac9ef78",
"doc": {
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"user_name": "唐平"
}
}, {
"id": 0,
"dataType": "init",
"queueType": "init",
"docId": "a5782af7652e87eb00025cfa6abf49bb",
"doc": {
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"user_name": "易超"
}
}, {
"id": 0,
"dataType": "init",
"queueType": "init",
"docId": "8de6ebcc652e882d079b2a4d019657ed",
"doc": {
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"user_name": "段涛"
}
}, {
"id": 0,
"dataType": "init",
"queueType": "init",
"docId": "41d77edc652e93b407906cd65d1c4e56",
"doc": {
"_id": "41d77edc652e93b407906cd65d1c4e56",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"postTime": "2020-10-10",
"user_name": "王六"
}
}, {
"id": 0,
"dataType": "init",
"queueType": "init",
"docId": "7dc1d502652e93bf07972139040bd3fa",
"doc": {
"_id": "7dc1d502652e93bf07972139040bd3fa",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"user_name": "唐平"
}
}],
"docs": [{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"user_name": "唐平"
}, {
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"user_name": "易超"
}, {
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"user_name": "段涛"
}, {
"_id": "41d77edc652e93b407906cd65d1c4e56",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"postTime": "2020-10-10",
"user_name": "王六"
}, {
"_id": "7dc1d502652e93bf07972139040bd3fa",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"user_name": "唐平"
}],
"type": "init",
"requestId": "1697879416647_0.9092538129463852",
"watchId": "watchid_1697879416228_0.7892680514541097"
}
删除后输出为:
{
"id": 1,
"docChanges": [{
"id": 1,
"dataType": "remove",
"queueType": "dequeue",
"docId": "7dc1d502652e93bf07972139040bd3fa",
"doc": {
"_id": "7dc1d502652e93bf07972139040bd3fa",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"user_name": "唐平"
}
}],
"docs": [{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"user_name": "唐平"
}, {
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"user_name": "易超"
}, {
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"user_name": "段涛"
}, {
"_id": "41d77edc652e93b407906cd65d1c4e56",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"postTime": "2020-10-10",
"user_name": "王六"
}],
"requestId": "1697879416647_0.9092538129463852",
"watchId": "watchid_1697879416228_0.7892680514541097"
}
删除:
{
"stats": {
"removed": 1
},
"errMsg": "document.remove:ok"
}
9、limit 限制查询
// 限制一次性查询3个
db.collection("demo_list").limit(3)
.get().then(res=>{
console.log(res)
})
10、orderBy 排序
// 根据 time 升序排序(升序:asc、降序:desc)
db.collection("demo_list").orderBy("time","asc").limit(3)
.get().then(res=>{
console.log(JSON.stringify(res))
})
{
"data": [
{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"time": "2023-10-21T15:05:52.462Z",
"user_name": "唐平"
},
{
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"time": "2023-10-21T15:06:34.244Z",
"user_name": "易超"
},
{
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"time": "2023-10-21T15:06:49.219Z",
"user_name": "段涛"
}
],
"errMsg": "collection.get:ok"
}
11、skip函数
// skip跳过三条(如果limit限制三条,skip相当于查询第二页)
db.collection("demo_list").orderBy("time","asc").limit(3).skip(3)
.get().then(res=>{
console.log(JSON.stringify(res))
})
12、field 函数
// field 接收我们想要的数据,user_name与address为true表示接收
db.collection("demo_list").orderBy("time","asc").limit(3).skip(0)
.field({
user_name: true,
address: true
})
.get().then(res=>{
console.log(JSON.stringify(res))
})
输出结果:
{
"data": [
{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"user_name": "唐平"
},
{
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"user_name": "易超"
},
{
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"user_name": "段涛"
}
],
"errMsg": "collection.get:ok"
}
三、Command
1、command
官方建议这样定义 command:
const db=wx.cloud.database()
const _ = db.command
2、where条件查询
// 查询地址为“福建省 漳州市 龙文区”的用户
db.collection("demo_list")
.where({
address: "福建省 漳州市 龙文区"
})
.get()
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
控制台输出结果:
{
"data": [{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"time": "2023-10-21T15:05:52.462Z",
"user_name": "唐平"
}],
"errMsg": "collection.get:ok"
}
3、eq 相等
// 查询地址为“福建省 漳州市 龙文区”的用户
db.collection("demo_list")
.where({
// 等价于address: "福建省 漳州市 龙文区"
// _ 是开头定义的 “_ = db.command”
address: _.eq("福建省 漳州市 龙文区")
})
.get()
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
4、neq 不相等
db.collection("demo_list")
.where({
// 查询地址不为 “福建省 漳州市 龙文区”
address: _.neq("福建省 漳州市 龙文区")
})
.get()
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
控制台输出:
{
"data": [{
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"time": "2023-10-21T15:06:34.244Z",
"user_name": "易超"
}, {
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"time": "2023-10-21T15:06:49.219Z",
"user_name": "段涛"
}, {
"_id": "41d77edc652e93b407906cd65d1c4e56",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"postTime": "2020-10-10",
"time": "2023-10-21T15:07:12.707Z",
"user_name": "王六"
}],
"errMsg": "collection.get:ok"
}
5、lte 小于等于
.where({
// 查询xxx小于等于5个
xxx: _.lte(5)
})
6、lt 小于
.where({
// 查询xxx小于5个
xxx: _.lt(5)
})
7、gte 大于等于
.where({
// 查询xxx大于等于5个
xxx: _.gte(5)
})
8、gt 大于
.where({
// 查询xxx大于5个
xxx: _.gt(5)
})
9、in 包含
.where({
// 参数是列表,查询包含澳门和云南省的信息
address: _.in(["澳门特别行政区 离岛","云南省 西双版纳傣族自治州 其它区"])
})
控制台输出:
{
"data": [{
"_id": "a5782af7652e87eb00025cfa6abf49bb",
"address": "澳门特别行政区 离岛",
"mobile": "18943772748",
"time": "2023-10-21T15:06:34.244Z",
"user_name": "易超"
}, {
"_id": "8de6ebcc652e882d079b2a4d019657ed",
"address": "云南省 西双版纳傣族自治州 其它区",
"mobile": "13588962266",
"time": "2023-10-21T15:06:49.219Z",
"user_name": "段涛"
}],
"errMsg": "collection.get:ok"
}
10、nin 不包含
.where({
// 参数是列表,查询不包含澳门和云南省的信息(黑名单)
address: _.nin(["澳门特别行政区 离岛","云南省 西双版纳傣族自治州 其它区"])
})
控制台输出:
{
"data": [{
"_id": "f18e14fa652e8708032637034ac9ef78",
"address": "福建省 漳州市 龙文区",
"mobile": "13596288733",
"time": "2023-10-21T15:05:52.462Z",
"user_name": "唐平"
}, {
"_id": "41d77edc652e93b407906cd65d1c4e56",
"_openid": "oJId45dfdgfdgdggsdfg0ZEVas",
"address": "上海市嘉定区",
"mobile": "135956252456",
"postTime": "2020-10-10",
"time": "2023-10-21T15:07:12.707Z",
"user_name": "王六"
}],
"errMsg": "collection.get:ok"
}
11、and 多个条件同时满足
.where({
// 查询 hits 在 100-400 之间
hits:_.and(_.gt(100),_.lte(400))
})
12、 or 满足其中一个条件即可
.where({
// 查询 hits 等于 235 或 等于 222
hits:_.or(_.eq(235),_.eq(222))
})
13、where查询多个字段
如果使用 _.or() 和 _.and() 只能针对一个字段
db.collection("demo_list")
.where()
.get()
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
(1) 用户 叫 “唐平” 或 hits 小于 500
.where(_.or([
{
hits: _.lt(500)
},
{
user_name: _.eq("唐平")
}
]))
(2) 用户 叫 “唐平” 且 hits 大于 500
.where(_.and([
{
hits: _.gt(500)
},
{
user_name: _.eq("唐平")
}
]))
14、exists 查询有这个字段的数据
.where({
time: _.exists(true)
})
返回有 time 字段的数据
15、mod 取余数学运算
用的不多,略
16、size 对字段中的数组进行操作
// 返回有两个数组长度的tabs的数据
.where({
tabs: _.size(2)
})
17、all 同时包含几个条件
// 返回tabs为 ['数码','科技'] 的数据
.where({
tabs: _.all(['数码','科技'])
})
18、elemMatch 数组字段的查询筛选条件
要求数组中包含至少一个满足 elemMatch
给定的所有条件的元素
// 找出 places 数组字段中至少同时包含一个满足 “area 大于 100 且 age 小于 2” 的元素
.where({
places: _.elemMatch({
area: _.gt(100),
age: _.lt(2),
})
})
19、inc 增加(参数为负数时也可以用来减少)
Number类型数据才可以
(1) 增加 hits
// hits 增加 5
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56")
.update({
data:{
hits: _.inc(5)
}
})
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
(2) 减少 hits
// hits 减少 5
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56")
.update({
data:{
hits: _.inc(-5)
}
})
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
20、删除某个字段
// 删除 id 对应的 postTime 字段
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56")
.update({
data:{
postTime: _.remove()
}
})
.then(res=>{
console.log(JSON.stringify(res));
this.setData({
dataList: res.data
})
})
21、set 把原来的字段对象给覆盖掉
db.collection("demo_list").doc("41d77edc652e93b407906cd65d1c4e56")
.update({
data:{
style: _.set({
back: "pink"
})
}
})
22、min、max比大小…
略
23、push 对数组添加
(1) 不写 Number 默认在最后面添加文章来源:https://www.toymoban.com/news/detail-759577.html
.updata({
data:{
// push 对数组字段后面添加"aaa"和"bbb"
list: _.push(['aaa'],['bbb'])
}
})
(2) 指定追加位置文章来源地址https://www.toymoban.com/news/detail-759577.html
.updata({
data:{
// push 对数组字段后面添加"aaa"和"bbb"
list: _.push({
each:['新视觉','实训'],
// 下标从0开始
position: 1
})
}
})
24、pop 删除数组最后一个元素
.updata({
data:{
// 删除数组最后的元素
list: _.pop()
}
})
25、unshift 对数组字段后面添加
.updata({
data:{
// 在数组开头添加多个元素
tabs:_.unshift(['智能','新闻'])
}
})
26、shift 删除数组第一个元素
.updata({
data:{
// 在数组开头添加多个元素
tabs:_.shift()
}
})
27、pull 移除数组中匹配的元素
.updata({
data:{
// 移除数组中的“数码”
tabs:_.pull('数码')
}
})
到了这里,关于微信小程序连接云数据库基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!