两天来我一直在与 Google Cloud Datastore 事务作斗争。
我不确定在 Google 数据存储区事务中是否应该使用 datastore.save 还是 transaction.save。
常用代码:
const datastore = new Datastore();
const transaction = datastore.transaction();
场景1:
transaction.run()
datastore.save(x)
transaction.commit()
场景 2:
transaction.run()
transaction.save(x)
transaction.commit()
文档中有一些示例,其中他们在 transaction.run 和 transaction.commit 中同时使用事务方法和数据存储方法,但我无法确定是否有必要。
Datastore.save 对我来说会更容易,但考虑到有一个方法 transaction.save,这似乎很奇怪。
最佳答案
如果我错了,请纠正我,这是我目前的理解
如果您想在事务中写入数据存储,您需要使用事务对象来执行此操作,即 transaction.save 和 transaction.delete; datastore.save 和 datastore.delete 不会出现在事务中,即使您将它们放入事务 block 中也是如此。
如果您想从事务中的数据存储区读取数据,事务和数据存储区对象都可以正常工作。两者都将根据事务开始时拍摄的快照进行读取。
关于node.js - 事务中的 Google Datastore Transaction API 与 Datastore API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677571/