提交 afea3c12 编写于 作者: inkwalk's avatar inkwalk

Merge branch 'master' of https://github.com/dcloudio/uni-app

......@@ -871,11 +871,13 @@ const res = await db.collection('query').doc('1').update({
### 更新数组内匹配条件的元素
**注意:只可确定数组内只会被匹配到一个的时候使用**
```js
const res = await db.collection('query').where({
'students.name': 'wang'
'students.id': '001'
}).update({
// 将students内第一个name为wang的name改为li
// 将students内id为001的name改为li
'students.$.name': 'li'
})
```
......@@ -887,12 +889,11 @@ const res = await db.collection('query').where({
"_id": "1",
"students": [
{
"id": "001",
"name": "zhang"
},
{
"name": "wang"
},
{
"id": "002",
"name": "wang"
}
]
......@@ -903,12 +904,11 @@ const res = await db.collection('query').where({
"_id": "1",
"students": [
{
"name": "zhang"
},
{
"id": "001",
"name": "li"
},
{
"id": "002",
"name": "wang"
}
]
......@@ -1501,23 +1501,28 @@ exports.main = async (event) => {
const bbbRes = await transaction.collection('account').doc('bbb').get()
if (aaaRes.data && bbbRes.data) {
const updateAAARes = await transaction.collection('account').doc('aaa').update({
data: {
amount: _.inc(-10)
}
})
try {
const updateAAARes = await transaction.collection('account').doc('aaa').update({
data: {
amount: _.inc(-10)
}
})
const updateBBBRes = await transaction.collection('account').doc('bbb').update({
data: {
amount: _.inc(10)
}
})
const updateBBBRes = await transaction.collection('account').doc('bbb').update({
data: {
amount: _.inc(10)
}
})
console.log(`transaction succeeded`)
console.log(`transaction succeeded`)
// 会作为 runTransaction resolve 的结果返回
return {
aaaAccount: aaaRes.data.amount - 10,
// 会作为 runTransaction resolve 的结果返回
return {
aaaAccount: aaaRes.data.amount - 10,
}
} catch(e) {
// 会作为 runTransaction reject 的结果出去
await transaction.rollback(-100)
}
} else {
// 会作为 runTransaction reject 的结果出去
......@@ -1568,8 +1573,8 @@ const db = uniCloud.database()
const _ = db.command
exports.main = async (event) => {
const transaction = await db.startTransaction()
try {
const transaction = await db.startTransaction()
const aaaRes = await transaction.collection('account').doc('aaa').get()
const bbbRes = await transaction.collection('account').doc('bbb').get()
......@@ -1596,7 +1601,6 @@ exports.main = async (event) => {
aaaAccount: aaaRes.data.amount - 10,
}
} else {
await transaction.rollback()
return {
success: false,
......@@ -1605,6 +1609,7 @@ exports.main = async (event) => {
}
}
} catch (e) {
await transaction.rollback()
console.error(`transaction error`, e)
return {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册