事务操作
本页中
- 支持多文档事务的操作
对于事务来说:
事务中允许以下读/写操作:
方法 | 命令 | 备注 |
---|---|---|
| ||
| ||
| | |
| ||
仅在针对现有集合运行时使用 upsert 。 | ||
仅在针对现有集合运行时使用。 | ||
| 如果插入,则仅在针对现有集合运行时。 | |
仅在针对现有集合运行时使用 upsert 。 | ||
| 如果插入,则仅在针对现有集合运行时。仅在针对现有集合运行时使用 upsert 。 |
分片键值更新
在事务中执行distinct操作:
- 替代
db.coll.distinct("x")
,使用:db.coll.aggregate([{ $group: { _id: null, distinctValues: { $addToSet: "$x" } } },{ $project: { _id: 0 } }]) - 替代
db.coll.distinct("x", { status: "A" })
,使用db.coll.aggregate([{ $match: { status: "A" } },{ $group: { _id: null, distinctValues: { $addToSet: "$x" } } },{ $project: { _id: 0 } }])对于一个文档,管道将返回一个游标:{ "distinctValues" : [ 2, 3, 1 ] }
迭代游标以访问文档结果。
事务中不允许执行以下操作:
- 影响数据库目录的操作,如创建或删除集合或索引。例如,事务不能包含会导致创建新集合的插入操作。
另请参见:
译者:王金铷
最近更新 1yr ago