Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
9bbcee7b
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
730
Star
38707
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9bbcee7b
编写于
1月 20, 2020
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: 增加数据库示例
上级
66959a5b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
274 addition
and
49 deletion
+274
-49
docs/uniCloud/cf-database.md
docs/uniCloud/cf-database.md
+274
-49
未找到文件。
docs/uniCloud/cf-database.md
浏览文件 @
9bbcee7b
...
...
@@ -211,11 +211,11 @@ db.collection('goods').where({
如果要表达更复杂的查询,可使用高级查询指令,比如筛选出所有内存大于 8g 的计算机商品:
```
js
const
_
=
db
.
command
// 取指令
const
dbCmd
=
db
.
command
// 取指令
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
memory
:
_
.
gt
(
8
),
// 表示大于 8
memory
:
dbCmd
.
gt
(
8
),
// 表示大于 8
}
})
```
...
...
@@ -336,10 +336,10 @@ db.collection('articles').where({
还可以用指令:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
const
myOpenID
=
'
xxx
'
db
.
collection
(
'
articles
'
).
where
({
_openid
:
_
.
eq
(
openid
)
_openid
:
dbCmd
.
eq
(
openid
)
})
```
...
...
@@ -354,9 +354,9 @@ db.collection('articles').where({
}
})
// 这种写法表示 stat 对象等于 { publishYear: 2018, language: 'zh-CN' }
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
articles
'
).
where
({
stat
:
_
.
eq
({
stat
:
dbCmd
.
eq
({
publishYear
:
2018
,
language
:
'
zh-CN
'
})
...
...
@@ -370,11 +370,11 @@ db.collection('articles').where({
如筛选出品牌不为 X 的计算机:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
brand
:
_
.
neq
(
'
X
'
)
brand
:
dbCmd
.
neq
(
'
X
'
)
},
})
```
...
...
@@ -386,10 +386,10 @@ db.collection('goods').where({
如筛选出价格大于 2000 的计算机:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
price
:
_
.
gt
(
2000
)
price
:
dbCmd
.
gt
(
2000
)
})
```
...
...
@@ -412,11 +412,11 @@ db.collection('goods').where({
筛选出内存为 8g 或 16g 的计算机商品:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
memory
:
_
.
in
([
8
,
16
])
memory
:
dbCmd
.
in
([
8
,
16
])
}
})
```
...
...
@@ -428,11 +428,11 @@ db.collection('goods').where({
筛选出内存不是 8g 或 16g 的计算机商品:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
memory
:
_
.
nin
([
8
,
16
])
memory
:
dbCmd
.
nin
([
8
,
16
])
}
})
```
...
...
@@ -445,22 +445,22 @@ db.collection('goods').where({
流式写法:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
memory
:
_
.
gt
(
4
).
and
(
_
.
lt
(
32
))
memory
:
dbCmd
.
gt
(
4
).
and
(
dbCmd
.
lt
(
32
))
}
})
```
前置写法:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
memory
:
_
.
and
(
_
.
gt
(
4
),
_
.
lt
(
32
))
memory
:
dbCmd
.
and
(
dbCmd
.
gt
(
4
),
dbCmd
.
lt
(
32
))
}
})
```
...
...
@@ -471,22 +471,22 @@ db.collection('goods').where({
流式写法:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
price
:
_
.
lt
(
4000
).
or
(
_
.
gt
(
6000
).
and
(
_
.
lt
(
8000
)))
price
:
dbCmd
.
lt
(
4000
).
or
(
dbCmd
.
gt
(
6000
).
and
(
dbCmd
.
lt
(
8000
)))
}
})
```
前置写法:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
({
category
:
'
computer
'
,
type
:
{
price
:
_
.
or
(
_
.
lt
(
4000
),
_
.
and
(
_
.
gt
(
6000
),
_
.
lt
(
8000
)))
price
:
dbCmd
.
or
(
dbCmd
.
lt
(
4000
),
dbCmd
.
and
(
dbCmd
.
gt
(
6000
),
dbCmd
.
lt
(
8000
)))
}
})
```
...
...
@@ -494,11 +494,11 @@ db.collection('goods').where({
如果要跨字段 “或” 操作:(如筛选出内存 8g 或 cpu 3.2 ghz 的计算机)
```
js
const
_
=
db
.
command
db
.
collection
(
'
goods
'
).
where
(
_
.
or
(
const
dbCmd
=
db
.
command
db
.
collection
(
'
goods
'
).
where
(
dbCmd
.
or
(
{
type
:
{
memory
:
_
.
gt
(
8
)
memory
:
dbCmd
.
gt
(
8
)
}
},
{
...
...
@@ -557,9 +557,9 @@ collection.where().remove()
```
js
// 删除字段a的值大于2的文档
const
_
=
db
.
command
const
dbCmd
=
db
.
command
collection
.
where
({
a
:
_
.
gt
(
2
)
a
:
dbCmd
.
gt
(
2
)
}).
remove
().
then
(
function
(
res
)
{
})
...
...
@@ -573,33 +573,83 @@ collection.doc().update()
```
js
collection
.
doc
(
'
doc-id
'
).
update
({
name
:
"
Hey
"
name
:
"
Hey
"
,
count
:
{
fav
:
1
}
});
```
```
// 更新前
{
_id: 'xxx',
name: "Hello",
count: {
fav: 0,
follow: 0
}
}
// 更新后
{
_id: 'xxx',
name: "Hey",
count: {
fav: 1,
follow: 0
}
}
```
### 更新文档,如果不存在则创建
collection.doc().set()
```
js
collection
.
doc
(
'
doc-id
'
).
set
({
name
:
"
Hey
"
name
:
"
Hey
"
,
count
:
{
fav
:
1
}
}).
then
(
function
(
res
)
{
});
```
```
// 更新前
{
_id: 'xxx',
name: "Hello",
count: {
fav: 0,
follow: 0
}
}
// 更新后
{
_id: 'xxx',
name: "Hey",
count: {
fav: 1
}
}
```
### 批量更新文档
collection.update()
```
js
const
_
=
db
.
command
collection
.
where
({
name
:
_
.
eq
(
'
hey
'
)}).
update
({
const
dbCmd
=
db
.
command
collection
.
where
({
name
:
dbCmd
.
eq
(
'
hey
'
)}).
update
({
age
:
18
,
}).
then
(
function
(
res
)
{
});
```
### 更新指令
#### set
...
...
@@ -607,19 +657,41 @@ collection.where({name: _.eq('hey')}).update({
更新指令。用于设定字段等于指定值。这种方法相比传入纯 JS 对象的好处是能够指定字段等于一个对象:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
photo
'
).
doc
(
'
doc-id
'
).
update
({
data
:
{
property
:
_
.
set
({
location
:
'
guangzhou
'
,
size
:
8
count
:
dbCmd
.
set
(
{
property
:
dbCmd
.
set
({
fav
:
1
,
follow
:
1
})
}
}
)
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
name: "Hello",
count: {
fav: 0,
follow: 0
}
}
// 更新后
{
_id: 'xxx',
name: "Hello",
count: {
fav: 1,
follow: 1
}
}
```
#### inc
更新指令。用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:
...
...
@@ -632,70 +704,223 @@ db.collection('photo').doc('doc-id').update({
如给收藏的商品数量加一:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
user
'
).
where
({
_
openid
:
'
my-open
-id
'
_
id
:
'
my-doc
-id
'
}).
update
({
count
:
{
fav
orites
:
_
.
inc
(
1
)
fav
:
dbCmd
.
inc
(
1
)
}
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
name: "Hello",
count: {
fav: 0,
follow: 0
}
}
// 更新后
{
_id: 'xxx',
name: "Hello",
count: {
fav: 1,
follow: 0
}
}
```
#### mul
更新指令。用于指示字段自乘某个值。
以下示例将count内的fav字段乘10
```
js
const
dbCmd
=
db
.
command
db
.
collection
(
'
user
'
).
where
({
_id
:
'
my-doc-id
'
}).
update
({
count
:
{
fav
:
dbCmd
.
mul
(
10
)
}
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
name: "Hello",
count: {
fav: 2,
follow: 0
}
}
// 更新后
{
_id: 'xxx',
name: "Hello",
count: {
fav: 20,
follow: 0
}
}
```
#### remove
更新指令。用于表示删除某个字段。如某人删除了自己一条商品评价中的评分:
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
comments
'
).
doc
(
'
comment-id
'
).
update
({
rating
:
_
.
remove
()
rating
:
dbCmd
.
remove
()
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
rating: 5,
comment: 'xxxx'
}
// 更新后
{
_id: 'xxx',
comment: 'xxxx'
}
```
#### push
向数组尾部追加元素,支持传入单个元素或数组
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
comments
'
).
doc
(
'
comment-id
'
).
update
({
// users:
_
.push('aaa')
users
:
_
.
push
([
'
aaa
'
,
'
bbb
'
])
// users:
dbCmd
.push('aaa')
users
:
dbCmd
.
push
([
'
c
'
,
'
d
'
])
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
users: ['a','b']
}
// 更新后
{
_id: 'xxx',
users: ['a','b','c','d']
}
```
#### pop
删除数组尾部元素
```
js
const
_
=
db
.
command
const
dbCmd
=
db
.
command
db
.
collection
(
'
comments
'
).
doc
(
'
comment-id
'
).
update
({
users
:
_
.
pop
()
users
:
dbCmd
.
pop
()
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
users: ['a','b']
}
// 更新后
{
_id: 'xxx',
users: ['a']
}
```
#### unshift
向数组头部添加元素,支持传入单个元素或数组。使用同push
```
js
const
dbCmd
=
db
.
command
db
.
collection
(
'
comments
'
).
doc
(
'
comment-id
'
).
update
({
// users: dbCmd.push('aaa')
users
:
dbCmd
.
unshift
([
'
c
'
,
'
d
'
])
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
users: ['a','b']
}
// 更新后
{
_id: 'xxx',
users: ['c','d','a','b']
}
```
#### shift
删除数组头部元素。使用同pop
```
js
const
dbCmd
=
db
.
command
db
.
collection
(
'
comments
'
).
doc
(
'
comment-id
'
).
update
({
users
:
dbCmd
.
shift
()
}).
then
(
function
(
res
)
{
})
```
```
// 更新前
{
_id: 'xxx',
users: ['a','b']
}
// 更新后
{
_id: 'xxx',
users: ['b']
}
```
<!-- ## GEO地理位置
...
...
@@ -903,10 +1128,10 @@ db.collection('user').where({
spaceId
:
'
YourSpaceId
});
const db = uniClient.database();
const
_
= db.command
const
dbCmd
= db.command
const collection = db.collection(
'
collName
'
) // collName 需填当前服务空间下集合名称
let ref = collection.where({ test:
_
.gt(0) }).watch({
let ref = collection.where({ test:
dbCmd
.gt(0) }).watch({
onChange: snapshot => {
console.log("收到snapshot**********", snapshot)
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录