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)
我需要 运行 等同于此,但在交易中:
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)