cloud.google.com/go/datastore 事务中的 GetAll(){}?

GetAll() in a cloud.google.com/go/datastore Transaction{}?

我需要 运行 等同于此,但在交易中: db.GetAll(ctx, datastore.NewQuery("Items").Ancestor(pkey), &itemContainers)

但是Transaction{}类型好像没有GetAll()方法。我怎样才能完成这项工作?

您不需要 GetAll() 的交易,您只需在 *Client 变量上调用它即可。

事务用于需要 运行 或一次全部回滚的原子操作集。例如,如果您有一组需要获取的键,您可以在 Transaction 类型上调用 GetMulti()https://pkg.go.dev/cloud.google.com/go/datastore#Transaction.GetMulti

GetAll可以单次操作完成,不需要在事务中进行批处理:https://pkg.go.dev/cloud.google.com/go/datastore#Client.GetAll

要在交易中使用查询,您应该附上您的 transaction to the query。例如

q = datastore.NewQuery("Items").Ancestor(pkey).Transaction(tx)
db.Getall(ctx, q, &itemContainers)