Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
5dc99cc9
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5dc99cc9
编写于
12月 28, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
doc: uniCloud database
上级
0c50085c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
7 addition
and
74 deletion
+7
-74
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+1
-1
docs/uniCloud/cf-database.md
docs/uniCloud/cf-database.md
+3
-72
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+3
-1
未找到文件。
docs/uniCloud/_sidebar.md
浏览文件 @
5dc99cc9
...
...
@@ -7,7 +7,7 @@
*
[
云函数
](
uniCloud/concepts/cloudfunction.md
)
*
云数据库
*
[
云数据库入门
](
uniCloud/hellodb.md
)
*
[
云函数
操作云
数据库
](
uniCloud/cf-database.md
)
*
[
云函数
内传统方式操作
数据库
](
uniCloud/cf-database.md
)
*
[
前端操作数据库的API
](
uniCloud/clientdb.md
)
*
[
云函数内使用JQL语法
](
uniCloud/jql-cloud.md
)
*
[
数据库索引
](
uniCloud/db-index.md
)
...
...
docs/uniCloud/cf-database.md
浏览文件 @
5dc99cc9
云函数中支持对云数据库的全部功能的操作。
云函数中不支持
`jql`
语法,仅支持传统MongoDB的API。
**不同于传统开发,云函数连接数据库有单次操作时长限制,目前单次操作时间限制如下。超出此时间会报超时错误。一般情况下在设置了合适的索引时不会遇到超时错误,如何优化查询速度请参考:[数据库性能优化](uniCloud/db-performance.md)**
|腾讯云 |阿里云 |
|-- |-- |
|5秒 |1秒 |
云函数中支持对云数据库的全部功能的操作。本章节主要讲解如何在云函数内通过传统api操作数据库,如需在云函数内使用JQL语法操作数据库,请参考:
[
云函数内使用JQL语法
](
uniCloud/jql-cloud.md
)
## 获取集合的引用
...
...
@@ -86,66 +77,6 @@ doc(docId)方法的参数只能是字符串,即数据库默认的_id字段。
| | shift | 数组类型字段删除头元素,支持数组 |
| | unshift | 数组类型字段追加头元素,支持数组 |
## 支持的数据类型@data-type
数据库提供以下几种数据类型:
*
String:字符串
*
Number:数字
*
Object:对象
*
Array:数组
*
Bool:布尔值
*
GeoPoint:地理位置点
*
GeoLineStringL: 地理路径
*
GeoPolygon: 地理多边形
*
GeoMultiPoint: 多个地理位置点
*
GeoMultiLineString: 多个地理路径
*
GeoMultiPolygon: 多个地理多边形
*
Date:时间
*
Null
以下对几个特殊的数据类型做个补充说明
### 时间 Date
Date 类型用于表示时间,精确到毫秒,可以用 JavaScript 内置 Date 对象创建。需要特别注意的是,连接本地云函数时,用此方法创建的时间是客户端当前时间,不是服务端当前时间,只有连接云端云函数才是服务端当前时间。
另外,我们还单独提供了一个 API 来创建服务端当前时间,使用 serverDate 对象来创建一个服务端当前时间的标记,
**该对象暂时只支持腾讯云空间**
,当使用了 serverDate 对象的请求抵达服务端处理时,该字段会被转换成服务端当前的时间,更棒的是,我们在构造 serverDate 对象时还可通过传入一个有 offset 字段的对象来标记一个与当前服务端时间偏移 offset 毫秒的时间,这样我们就可以达到比如如下效果:指定一个字段为服务端时间往后一个小时。
```
js
// 服务端当前时间
new
db
.
serverDate
()
// 在云函数内使用new Date()和new db.serverDate()效果一样
```
```
js
//服务端当前时间加1S
new
db
.
serverDate
({
offset
:
1000
})
// 在云函数内使用new Date(Date.now() + 1000)和上面的用法效果一样
```
如果需要对日期进行比较操作,可以使用聚合操作符将日期进行转化,比如以下示例查询所有time字段在
`2020-02-02`
以后的记录
```
js
'
use strict
'
;
const
db
=
uniCloud
.
database
()
exports
.
main
=
async
(
event
,
context
)
=>
{
const
dbCmd
=
db
.
command
const
$
=
dbCmd
.
aggregate
let
res
=
await
db
.
collection
(
'
unicloud-test
'
).
where
(
dbCmd
.
expr
(
$
.
gte
([
'
$time
'
,
$
.
dateFromString
({
dateString
:
new
Date
(
'
2020-02-02
'
).
toISOString
()
})])
)).
get
()
return
res
};
```
### 地理位置
参考:
[
GEO地理位置
](
#GEO地理位置
)
## 新增文档@add
方法1: collection.add(data)
...
...
@@ -220,7 +151,7 @@ let res = await collection.doc('doc-id').set({
**注意**
-
自动生成的_id是自增的,后创建的记录的_id总是大于先生成的_id
-
阿里云自动生成的_id是递增的,后创建的记录的_id总是大于先生成的_id。腾讯云自动生成的_id并非递增。
## 查询文档@query
...
...
@@ -234,7 +165,7 @@ limit,即返回记录的最大数量,默认值为100,也就是不设置lim
如需查询更多数据,需要分页多次查询。
如果使用
clientDB
传入getTree参数以返回树形数据也受上面的规则限制,不过此时limit方法仅对根节点生效(大量数据建议使用分层加载,不要使用getTree一次返回所有数据)
如果使用
JQL语法
传入getTree参数以返回树形数据也受上面的规则限制,不过此时limit方法仅对根节点生效(大量数据建议使用分层加载,不要使用getTree一次返回所有数据)
**get响应参数**
...
...
docs/uniCloud/clientdb.md
浏览文件 @
5dc99cc9
JQL语法相关文档已移至:
[
JQL语法
](
uniCloud/jql.md
)
## clientDB简介
> 自`HBuilderX 2.9.5`起支持在客户端直接使用`uniCloud.database()`方式获取数据库引用,即在前端直接操作数据库,这个功能被称为`clientDB`
...
...
@@ -114,6 +116,6 @@ db.collection('list')
-
更新数据时键值不可使用
`{'a.b.c': 1}`
的形式,需要写成
`{a:{b:{c:1}}}`
形式
## JQL
查询语法@jsquery
## JQL
语法@jql
clientDB使用JQL在客户端编写查询语句,关于JQL语法请参考:
[
JQL语法
](
uniCloud/jql.md
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录