DocumentDB 存储过程对于多个客户端同时执行是否安全?

Are DocumentDB stored procedures safe for simultaneous executions by multiple clients?

如何确保存储过程的每次执行都能完成其整个事务,而文档状态不会被另一个客户端同时执行的同一过程修改?

我需要做些什么来确保锁定正在修改的文档吗?
有没有办法实现类似 T-SQL TRANSACTION 的东西,以确保在发生错误时回滚整个操作?

存储过程在数据库快照上独立执行。要么操作中的一切正常,要么全部回滚。

您仍应为任何 replaceDocument()deleteDocument() 调用使用 etag 选项,以确保您的文件未被更改。

etag = oldDocument._etag;
options = {etag: etag};
stillQueueing = collection.replaceDocument(documentLink, newDocument, options);