提交 f7065414 编写于 作者: hbcui1984's avatar hbcui1984

更新云函数

上级 d258b9f1
`uniCloud` 是 DCloud 和阿里云、腾讯云等成熟云厂商合作推出的云服务产品,为开发者提供的高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等能力(Serverless 化);开发者使用 JS 开发业务逻辑,并将代码上传云端,`uniCloud`负责运行环境的管理调度,开发者无需再关心服务器的创建、扩容、灾备等运维工作,从而可以更专注于业务逻辑的实现,更高效的实现产品上线及迭代
`uniCloud` 是 DCloud 在微信/阿里小程序云开发的基建平台上进行扩展封装的云服务产品
开发者借助`uni-app`,虽然已可以开发所有前端应用。但仍然需要雇佣 PHP 或 Java 等后台开发人员,既有后端人员成本,又有前 / 后端沟通成本。腾讯、阿里、百度小程序虽陆续上线了云开发,但它们均只支持自己的小程序,无法跨端,分散的服务器对开发者更不可取。
`uniCloud` 为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、数据存储、文件存储等能力;开发者使用 JS 开发业务逻辑,并将代码上传云端,`uniCloud`负责运行环境的管理调度,开发者无需再关心服务器的创建、扩容、灾备等运维工作,从而可以更专注于业务逻辑的实现,更高效的实现产品上线及迭代。
在底层,`uniCloud` 和微信小程序云开发、支付宝小程序`Serverless`使用同样的基建平台,只不过微信云开发仅支持微信小程序,支付宝小程序`Serverless`仅支持阿里系小程序,`uniCloud`
作为三方中间产品,打破了厂商属性,抹平了各端差异,可实现一个云服务,兼容全网多端平台。
<!-- 开发者借助`uni-app`,虽然已可以开发所有前端应用。但仍然需要雇佣 PHP 或 Java 等后台开发人员,既有后端人员成本,又有前 / 后端沟通成本。腾讯、阿里、百度小程序虽陆续上线了云开发,但它们均只支持自己的小程序,无法跨端,分散的服务器对开发者更不可取。 -->
开发者基于`uni-app` + `uniCloud`,可实现一个后台服务构建多端应用(App、H5、小程序),开发者可更专注于业务逻辑的实现,开发门槛更低,效率更高。
......@@ -10,4 +15,4 @@
- 数据库:可在云函数中读写的 JSON 数据库,并可在uniCloud控制台可视化操作
- 存储:在应用前端直接上传或下载云端文件,并可在uniCloud控制台进行可视化管理。
`uniCloud` 公测期间免费使用。
\ No newline at end of file
`uniCloud` 目前处于公测阶段,公测期间免费使用。
\ No newline at end of file
`uniCloud`云函数中可访问云数据库。
鉴于安全问题,暂不支持客户端直接访问数据库。
## 获取数据库的引用
```js
const db = uniCloud.database(Object DBOptions);
const db = uniCloud.database();
```
**DBOptions参数说明**
<!-- **DBOptions参数说明**
|字段 |类型 |必填 |描述 |平台差异说明 |
|:-: |:-: |:-: |:-: |:-: |
|spaceId |String |否 |服务空间ID |仅腾讯云支持 |
## 新增集合
-->
<!-- ## 新增集合
如果集合已存在,则报错。
```
db.createCollection(collectionName)
```
-->
## 获取集合的引用
```js
......@@ -127,9 +131,9 @@ const collection = db.collection('user');
})
```
2. 地理位置
<!-- 2. 地理位置
参考:[GEO地理位置](#GEO地理位置)
参考:[GEO地理位置](#GEO地理位置) -->
3. Null
......@@ -154,6 +158,8 @@ collection.add({
});
```
Tips:云服务商为阿里云时,若集合不存在,调用add方法会自动创建集合
方法2: collection.doc().set(data)
也可通过 `set` 方法新增一个文档,需先取得文档引用再调用 `set` 方法。
......@@ -165,6 +171,7 @@ collection.doc().set({
});
```
## 查询文档
支持 `where()``limit()``skip()``orderBy()``get()``update()``field()``count()` 等操作。
......@@ -173,6 +180,7 @@ collection.doc().set({
注:默认取前100条数据,最大取前100条数据。
### 添加查询条件
collection.where()
参数
......@@ -200,6 +208,7 @@ db.collection('goods').where({
```
### 获取查询数量
collection.count()
参数
......@@ -226,6 +235,7 @@ db.collection('goods').where({
### 设置记录数量
collection.limit()
参数说明
......@@ -243,6 +253,7 @@ collection.limit(1).get().then(function(res) {
```
### 设置起始位置
collection.skip()
参数说明
......@@ -260,6 +271,7 @@ collection.skip(4).get().then(function(res) {
```
### 对结果排序
collection.orderBy()
参数说明
......@@ -507,7 +519,8 @@ db.collection('articles').where({
```
## 删除文档
方式1 通过指定文档ID
**方式1 通过指定文档ID删除**
collection.doc(_id).remove()
......@@ -525,7 +538,7 @@ collection.get()
});
```
方式2 条件查找文档然后直接批量删除
**方式2 条件查找文档然后直接批量删除**
collection.where().remove()
......@@ -669,7 +682,7 @@ db.collection('comments').doc('comment-id').update({
删除数组头部元素。使用同pop
## GEO地理位置
<!-- ## GEO地理位置
注意:**如果需要对类型为地理位置的字段进行搜索,一定要建立地理位置索引**
......@@ -864,8 +877,8 @@ db.collection('user').where({
})
})
```
## 数据库实时推送
-->
<!-- ## 数据库实时推送
监听指定集合中符合查询条件的文档,通过onchange回调获得文档的变化详情
(where参数为查询条件 参考 [查询文档](#查询文档))
......@@ -904,11 +917,11 @@ db.collection('user').where({
```js
ref.close()
```
## 平台差异
-->
<!-- ## 平台差异
|差异项 |说明 |
|:-: |:-: |
|add |使用阿里云时在集合不存在的时候调用会自动创建集合 |
|数据库实时推送 |阿里云暂不支持 |
|GEO地理位置 |阿里云暂不支持 |
\ No newline at end of file
|GEO地理位置 |阿里云暂不支持 | -->
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册