MongoDB有一个“两阶段提交”的概念。
对单个文档的操作对于MongoDB数据库总是原子化的;但是,涉及多个文档的操作(通常称为“多文档事务”)并不是原子操作。由于文档可能相当复杂,并且包含多个“嵌套”文档,因此单文档原子性为许多实际用例提供了必要的支持。
由于GraphQL中的架构创建了单独的文档,所以GraphQL如何处理这个问题?
发布于 2018-11-09 15:08:27
GraphQL对事务或原子性没有任何内在的概念。沿着这些思路的唯一声明是对单个突变中的多个顶级字段进行串行解析。,并期望以后的突变会看到以前的副作用。如果单个GraphQL调用中有多个更改,而稍后的一个更改失败,则GraphQL绝对不会说明是否应该回滚第一个调用。
如果您正在以一种需要更改多个文档或记录的方式实现GraphQL模式,则应由您作为实现者(或者您正在使用的中间库)来提供所需的原子性和一致性保证。GraphQL在这里没有提供任何东西。
https://stackoverflow.com/questions/53227229
复制相似问题