Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
동경
unidocs-zh
提交
eeb2ae01
unidocs-zh
项目概览
동경
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
eeb2ae01
编写于
4月 25, 2022
作者:
M
mehaotian
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:dcloudio/unidocs-zh
# Conflicts: # docs/uni-stat-v2.md
上级
a91d99ba
4e4e8391
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
175 addition
and
92 deletion
+175
-92
docs/component/list.md
docs/component/list.md
+1
-1
docs/uni-stat-v2.md
docs/uni-stat-v2.md
+170
-87
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+1
-1
docs/uniCloud/jql.md
docs/uniCloud/jql.md
+3
-3
未找到文件。
docs/component/list.md
浏览文件 @
eeb2ae01
...
...
@@ -32,7 +32,7 @@ app端nvue专用组件。在app-nvue下,如果是长列表,使用list组件
> **注意**
> - 相同方向 `<list>` 或者 `<scroll-view>` 互相嵌套时,Android 平台子 `<list>` 不可滚动,iOS 可以,iOS 有Bounce效果, Android仅可滚动时有
> - `<list>` 需要显式的设置其宽高,可使用 position: absolute; 定位或 width、height 设置其宽高值。
> - list是区域滚动,不会触发页面滚动,无法触发pages.json配置的下拉刷新、页面触底onReachBottomDistance、titleNView的transparent透明渐变。
> - list是区域滚动,不会触发页面滚动,无法触发pages.json配置的下拉刷新、页面触底onReachBottomDistance、titleNView的transparent透明渐变
、style的transparentTitle导航栏透明
。
> - Android 平台,因 `<list>` 高效内存回收机制,不在屏幕可见区域的组件不会被创建,导致一些内部需要计算宽高的组件无法正常工作,例如 `<slider>`、`<progress>`、`<swiper>`
#### 子组件
...
...
docs/uni-stat-v2.md
浏览文件 @
eeb2ae01
## uni统计2.0
uni统计2.0
是基于uniCloud
开发的开源、免费统计平台。
uni统计2.0
是基于 uniCloud
开发的开源、免费统计平台。
## 产品特色
`uni统计2.0`
和
`uni统计1.0`
一样,均支持全域流量统计,无需在各端接不同的
sdk、无需在不同后台查看数据。使用uni统计,一张报表可查看所有端(iOS、Android、H5
及各家小程序)的运营数据。
`uni统计2.0`
和
`uni统计1.0`
一样,均支持全域流量统计,无需在各端接不同的
sdk、无需在不同后台查看数据。使用 uni 统计,一张报表可查看所有端(iOS、Android、H5
及各家小程序)的运营数据。
相比
`uni统计1.0`
,
`uni统计2.0`
还有如下特色功能:
**1. 开源**
前端采集数据的SDK、云端接收数据的云函数、云端跑批统计的云函数、展示统计结果的管理报表,所有代码全部开源。
前端采集数据的
SDK、云端接收数据的云函数、云端跑批统计的云函数、展示统计结果的管理报表,所有代码全部开源。
**2. 私有部署**
使用传统
`saas`
类统计产品时,所有
App
数据都上报在统计厂商统一的数据库中,也就是中央化部署模式。
使用传统
`saas`
类统计产品时,所有
App
数据都上报在统计厂商统一的数据库中,也就是中央化部署模式。
`uni统计2.0`
基于
`uniCloud`
实现,云函数、统计数据全部托管在开发者自己的服务空间中,开发者对自己的统计数据拥有完整的控制权。
**3. 自由定制**
`uni统计2.0`
所有代码是完全开源的,开发者可在开源代码基础上,轻松扩展统计维度,自由定制报表样式。
**uni统计新老版本对比**
**uni
统计新老版本对比**
|功能|uni统计1.0|uni统计2.0|
|
:-:|:-:|:-:
|
|是否开源|否|是|
|是否免费|是|是|
|部署方式|中央部署|私有部署|
|定制方式|不可定制|方便定制|
|
:-: | :-: | :-:
|
|是否开源
|否|是|
|是否免费
|是|是|
|部署方式
|中央部署|私有部署|
|定制方式
|不可定制|方便定制|
## 前端配置
...
...
@@ -38,16 +38,16 @@ uni统计2.0是基于uniCloud开发的开源、免费统计平台。
### 全局设置
将
`
manifest.json -> uniStatistics`
下的
`enable`
字段设置为
`true|false`
,来开启关闭
`uni统计`
将
`manifest.json -> uniStatistics`
下的
`enable`
字段设置为
`true|false`
,来开启关闭
`uni统计`
设置
`version`
属性为
`"2"`
来开启新版统计
```
js
//...
"
uniStatistics
"
:
{
"
enable
"
:
true
,
//全局开启
"
version
"
:
"
2
"
// 开启新版uni统计,值为字符串
},
//...
"
uniStatistics
"
:
{
"
enable
"
:
true
,
//全局开启
"
version
"
:
"
2
"
// 开启新版uni统计,值为字符串
},
//...
```
...
...
@@ -56,11 +56,11 @@ uni统计2.0是基于uniCloud开发的开源、免费统计平台。
`uniStatistics`
支持分平台设置,比如若需仅开启微信平台的
`uni统计`
,则在
`mp-weixin`
节点下设置
`uniStatistics ->enable`
即可,如下:
```
js
//...
"
mp-weixin
"
:{
"
uniStatistics
"
:
{
"
enable
"
:
true
//微信平台开启统计
}
//...
"
mp-weixin
"
:{
"
uniStatistics
"
:
{
"
enable
"
:
true
//微信平台开启统计
}
}
```
...
...
@@ -70,33 +70,31 @@ uni统计2.0是基于uniCloud开发的开源、免费统计平台。
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
如需在开发运行阶段调试查看上报数据 ,可开启 debug 模式 ,后文查看详情
:::
### 域名白名单
由于各家小程序对可访问的域名要配置白名单,否则无法联网。
注意选择对应的服务商域名(文章后面章节会有服务空间相关配置)
|服务提供商| request合法域名|
|:-:|:-:|
|阿里云 |api.bspapp.com |
|腾讯云 |tcb-api.tencentcloudapi.com|
| 服务提供商 | request 合法域名 |
| :--------: | :-------------------------: |
| 阿里云 | api.bspapp.com |
| 腾讯云 | tcb-api.tencentcloudapi.com |
## 统计管理后台配置
新版统计与之前不同的是需要用户自行管理部署统计后台,使用了
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html#uni-admin-%E6%A1%86%E6%9E%B6-%E5%8E%9F%E5%90%8D-unicloud-admin
)
来管理
`uni统计`
数据。
### 创建 uni-admin
使用
`HBuilderX 3.4.x
`
版本新建
`uni-app`
项目,选择
`uni-admin`
项目模板,如下图:
使用
`HBuilderX 3.4.x`
版本新建
`uni-app`
项目,选择
`uni-admin`
项目模板,如下图:
![
download-admin
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/80406bf5-f96a-4a66-9430-a339a4054c96.png
)
创建完成后,可以跟随
`云服务空间初始化向导`
初始化项目,创建并绑定云服务空间
![
download-admin
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/7fd34451-2313-4d01-8caf-39f277780642.png
)
### 运行 uni-admin
接下来所有操作都是基于新创建的
`uni-admin`
项目来操作
...
...
@@ -104,11 +102,12 @@ uni统计2.0是基于uniCloud开发的开源、免费统计平台。
### 目录结构
注意:创建完成后确保
`uniCloud -cloudfunctions`
目录下包含了
`uni-stat-report`
云函数
![
目录结构
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/c20bd7bf-d52e-4038-80d6-a2e76c80a091.png
)
![
目录结构
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/c20bd7bf-d52e-4038-80d6-a2e76c80a091.png
)
### 配置 uni-id
打开
`uni-config-center`
配置
`uni-id`
的
`passwordSecret`
和
`tokenSecret`
字段 (测试期间跳过本条也可以)
-
`passwordSecret`
字段 ,用于加密密码入库的密钥
-
`tokenSecret`
字段 ,为生成 token 需要的密钥
...
...
@@ -147,13 +146,14 @@ uni统计2.0是基于uniCloud开发的开源、免费统计平台。
## 关联服务空间
客户端和管理后端都已经准备好了,但是现在还不能从客户端直接上报数据到管理后端,所以需要关联客户端和管理后端的服务空间
1.
在客户端项目右键并选择
`创建uniCloud云开发环境 -> 阿里云|腾讯云`
![
关联前后台数据
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/b2ad84ed-a69a-43dc-b8d1-6efaafd96a14.png
)
2.
在
`uniCloud`
目录右键并选择
`关联云服务空间或项目`
,在打开的窗口中选择上一节
`uni-admin`
关联的服务空间(两个项目务必关联同一个服务空间,且
uni-admin
中所有云函数、公共模板等都已经上传部署到该服务空间)
2.
在
`uniCloud`
目录右键并选择
`关联云服务空间或项目`
,在打开的窗口中选择上一节
`uni-admin`
关联的服务空间(两个项目务必关联同一个服务空间,且
uni-admin
中所有云函数、公共模板等都已经上传部署到该服务空间)
![
关联前后台数据
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/14744bf3-c88e-4408-b2fa-0ecf0dcf4fe1.png
)
...
...
@@ -271,56 +271,55 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
2.
分别在数据
`上报数据接收器(uni-stat-receiver)`
和
`定时任务云函数(uni-stat-cron)`
下的
`package.json`
文件中添加redis拓展库。
3.
重新上传部署数据
`上报数据接收器(uni-stat-receiver)`
、
`定时任务云函数(uni-stat-cron)`
和
`配置中心(uni-config-center)`
。
```
javascript
```
javascript
//配置uni-stat-receiver的redis拓展库
{
"
name
"
:
"
uni-stat-receiver
"
,
"
dependencies
"
:
{
"
uni-id
"
:
"
file:../../../../uni-id/uniCloud/cloudfunctions/common/uni-id
"
,
"
uni-stat
"
:
"
file:../common/uni-stat
"
},
"
extensions
"
:
{
"
uni-cloud-jql
"
:
{},
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
}
"
name
"
:
"
uni-stat-receiver
"
,
"
dependencies
"
:
{
"
uni-id
"
:
"
file:../../../../uni-id/uniCloud/cloudfunctions/common/uni-id
"
,
"
uni-stat
"
:
"
file:../common/uni-stat
"
},
"
extensions
"
:
{
"
uni-cloud-jql
"
:
{},
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
}
}
//配置uni-stat-cron的redis拓展库
{
"
name
"
:
"
uni-stat-cron
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
scripts
"
:
{
"
test
"
:
"
echo
\"
Error: no test specified
\"
&& exit 1
"
},
"
author
"
:
""
,
"
license
"
:
"
ISC
"
,
"
dependencies
"
:
{
"
uni-stat
"
:
"
file:../common/uni-stat
"
},
"
extensions
"
:
{
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
},
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
512
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 0 * * * * *
"
}
]
}
"
name
"
:
"
uni-stat-cron
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
scripts
"
:
{
"
test
"
:
"
echo
\"
Error: no test specified
\"
&& exit 1
"
},
"
author
"
:
""
,
"
license
"
:
"
ISC
"
,
"
dependencies
"
:
{
"
uni-stat
"
:
"
file:../common/uni-stat
"
},
"
extensions
"
:
{
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
},
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
512
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 0 * * * * *
"
}
]
}
}
```
### 定时任务配置说明
`cron`
参数用于配置定时任务触发时间,一般无需修改此项。
...
...
@@ -347,12 +346,12 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
**阿里云服务空间开启步骤:**
1.
因阿里云服务空间默认不支持分钟级定时器,必须先向
DCloud
申请分钟级定时器后再开启。
[
申请方式
](
https://uniapp.dcloud.io/uniCloud/price.html#aliyun
)
2.
修改
uni
统计配置项将
`cronMin`
参数的值改为
`true`
。
1.
因阿里云服务空间默认不支持分钟级定时器,必须先向
DCloud
申请分钟级定时器后再开启。
[
申请方式
](
https://uniapp.dcloud.io/uniCloud/price.html#aliyun
)
2.
修改
uni
统计配置项将
`cronMin`
参数的值改为
`true`
。
3.
修改
`定时任务云函数(uni-stat-cron)`
下的
`package.json`
文件中的触发器配置。
4.
重新上传部署
`定时任务云函数(uni-stat-cron)`
和
`配置中心(uni-config-center)`
。
```
javascript
```
javascript
//config选项为阿里云定时器的cron表达式 将原小时级表达式 "config": "0 0 * * * * *" 更改为分钟级表达式 "config": "0 * * * * * *" 后重新上传部署云函数即可.
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
...
...
@@ -370,11 +369,11 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
**腾讯云服务空间开启步骤:**
1.
修改
uni
统计配置项将
`cronMin`
参数的值改为
`true`
。
1.
修改
uni
统计配置项将
`cronMin`
参数的值改为
`true`
。
2.
修改
`定时任务云函数(uni-stat-cron)`
下的
`package.json`
文件中的触发器配置。
3.
重新上传部署
`定时任务云函数(uni-stat-cron)`
和
`配置中心(uni-config-center)`
。
```
javascript
```
javascript
//config选项为阿里云定时器的cron表达式 将原小时级表达式 "config": "0 0 * * * * *" 更改为分钟级表达式 "config": "0 * * * * * *" 后重新上传部署云函数即可.
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
...
...
@@ -401,15 +400,17 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
|checkTime|错误检测间隔时间,单位
`分钟`
。|
### 日志清理配置说明
`cleanLog`
参数用于配置定时清理过期的日志,减少数据库数据的存储量,提升
uni统计性能。注意:因为留存统计的需要,基础会话日志和用户会话日志要至少保存31
天的日志,否则会对留存统计造成影响。
`cleanLog`
参数用于配置定时清理过期的日志,减少数据库数据的存储量,提升
uni 统计性能。注意:因为留存统计的需要,基础会话日志和用户会话日志要至少保存 31
天的日志,否则会对留存统计造成影响。
|参数|说明|
| :-: |:-:|
|open|是否开启日志清理:true:是;false:否|
|reserveDays|各项日志的保留天数配置,参数格式:
`日志类型:保留天数`
,例如:
`sessionLog:31`
代表保留31天的会话日志,保留天数设置为0时表示永久保留(此举会累积大量无用数据,不推荐)|
**目前可配置的日志类型有:**
|字段|说明|
...
...
@@ -431,12 +432,99 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
## 开源代码解读
### 前端SDK说明
uni-app 框架内置
### uni-admin说明
**前端页面结构**
为了突出目标,仅注释出 uni 统计相关的文件夹及文件,其余与普通 uni-app 项目相同。新增页面可参考 uni-stat 中相似页面。
```
bash
├── cloudfunctions
├── common
# 样式
│ │── uni.css
# 公共样式
│ └── uni-icons.css
# icon样式
├── components
# 自定义组件
├── js_sdk
# js sdk
│ └── uni-stat
# uni统计相关工具方法
│ └── util.js
├── pages
# 页面
│ └── uni-stat
# uni统计页面
│ │── channel
# 渠道(app)
│ │ │── channel.vue
# 页面(下同)
│ │ └── fieldsMap.js
# 字段配置(下同)
│ │── device
# 设备统计
│ │ │── activity
# 渠道/场景分析
│ │ │ │── activity.vue
│ │ │ └── fieldsMap.js
│ │ │── comparison
# 平台对比
│ │ │ │── comparison.vue
│ │ │ └── fieldsMap.js
│ │ │── overview
# 今日概览
│ │ │ │── overview.vue
│ │ │ └── fieldsMap.js
│ │ │── retention
# 留存
│ │ │ │── retention.vue
│ │ │ └── fieldsMap.js
│ │ │── stickiness
# 粘性
│ │ │ │── stickiness.vue
│ │ │ └── fieldsMap.js
│ │ └── trend
# 趋势分析
│ │ │── trend.vue
│ │ └── fieldsMap.js
│ │── error
# 错误分析
│ │ │── error.vue
│ │ └── fieldsMap.js
│ │── event
# 事件分析
│ │ │── event.vue
│ │ └── fieldsMap.js
│ │── index
# 统计首页
│ │ │── index.vue
│ │ └── fieldsMap.js
│ │── page-ent
# 入口页
│ │ │── page-ent.vue
│ │ └── fieldsMap.js
│ │── page-res
# 受访页
│ │ │── page-res.vue
│ │ └── fieldsMap.js
│ │── scene
# 场景值(小程序)
│ │ │── scene.vue
│ │ └── fieldsMap.js
│ └── user
# 用户统计
│ │── activity
# 渠道/场景分析
│ │ │── activity.vue
│ │ └── fieldsMap.js
│ │── comparison
# 平台对比
│ │ │── comparison.vue
│ │ └── fieldsMap.js
│ │── overview
# 今日概览
│ │ │── overview.vue
│ │ └── fieldsMap.js
│ │── retention
# 留存
│ │ │── retention.vue
│ │ └── fieldsMap.js
│ │── stickiness
# 粘性
│ │ │── stickiness.vue
│ │ └── fieldsMap.js
│ └── trend
# 趋势分析
│ │── trend.vue
│ └── fieldsMap.js
├── static
├── store
├── admin.config.js
├── App.vue
├── main.js
├── mainfest.json
├── pages.json
├── postcss.config.js
└── uni.scss
```
### 服务端说明
** 1. 服务端构成**
**1. 服务端构成**
-
`uni-config-center/uni-stat 配置模块`
:给
`uni-stat 公共模块`
提供运行必要的配置参数。
-
`uni-stat 公共模块`
:数据处理模块,包括收集上报数据的处理入库及定时任务的数据处理。
-
`uni-stat-receiver 上报数据接收器`
:接收客户端上报数据并转发给公共模块处理。注意:该云对象依赖于
`uni-id`
公共模块。
...
...
@@ -451,7 +539,10 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
-
`index.js文件`
代理入口文件。
## 扩展和自定义方式
<!-- ## 扩展和自定义方式
uni统计提供了基础的数据报表,如不能达到预期的数据采集,可以在客户端通过
`uni.report(eventKey,param)`
自由上报数据 ,并通过 uni-admin 增加页面 ,自行统计数据。
### uni.report 基础用法
...
...
@@ -476,14 +567,6 @@ uni.report('购买',{
})
```
### 完整扩展示例
**使用 uni.report(eventKey,param) 上报数据**
**uni-admin增加展示页面**
**获取数据**
**增加详情页面**
-->
docs/uniCloud/clientdb.md
浏览文件 @
eeb2ae01
...
...
@@ -16,7 +16,7 @@ JQL语法相关文档已移至:[JQL语法](uniCloud/jql.md)
在
`DB Schema`
中,配置数据操作的权限和字段值域校验规则,阻止前端不恰当的数据读写。详见:
[
DB Schema
](
https://uniapp.dcloud.net.cn/uniCloud/schema
)
如果
想在数据库操作之前或之后需要在云端执行额外的动作(比如获取文章详情之后
阅读量+1),
`clientDB`
提供了action云函数机制。在HBuilderX项目的
`cloudfunctions/uni-clientDB-actions`
目录编写上传js,参考:
[
action
](
uniCloud/jql?id=action
)
如果
需要数据库操作之前或之后,云端执行关联逻辑(比如获取文章详情后,文章
阅读量+1),
`clientDB`
提供了action云函数机制。在HBuilderX项目的
`cloudfunctions/uni-clientDB-actions`
目录编写上传js,参考:
[
action
](
uniCloud/jql?id=action
)
**注意**
...
...
docs/uniCloud/jql.md
浏览文件 @
eeb2ae01
...
...
@@ -11,7 +11,7 @@
-
sql是一种字符串表达式,写法形如:
```
select * from table1 where field1="
123
"
select * from table1 where field1="
value1
"
```
-
nosql是js方法+json方式的参数,写法形如:
...
...
@@ -19,7 +19,7 @@ select * from table1 where field1="123"
```
js
const
db
=
uniCloud
.
database
()
let
res
=
await
db
.
collection
(
'
table
'
).
where
({
field1
:
'
123
'
field1
:
'
value1
'
}).
get
()
```
...
...
@@ -42,7 +42,7 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
如果要表达
`或`
关系,需要用
`or`
方法,写法更复杂
```
js
field1
:
dbCmd
.
gt
(
4000
).
or
(
dbCmd
.
gt
(
6000
).
and
(
dbCmd
.
lt
(
8000
)
))
field1
:
dbCmd
.
gt
(
0
).
or
(
dbCmd
.
lt
(
-
5
))
```
2.
nosql的联表查询写法,比sql还复杂
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录