Google Cloud Datastore查询结果中如何获取对应实体的Key?
Google Cloud Datastore Go SDK查询时获取实体Key的方法
你现在忽略了it.Next()方法的第一个返回值,这个返回值就是你要的实体Key,直接接收即可。
修改后的示例代码:
var priorities []int var percents []float64 var keys []*datastore.Key // 存储所有实体的Key it := client.Run(ctx, query) for { var task Task // 接收第一个返回值作为实体Key key, err := it.Next(&task) if err == iterator.Done { break } else if err != nil { log.Fatal(err) } priorities = append(priorities, task.Priority) percents = append(percents, task.PercentComplete) keys = append(keys, key) // 保存Key }
拿到*datastore.Key类型的Key对象后,你可以直接调用它的方法获取对应属性:
- 调用
key.Kind()获取实体的Kind值 - 如果是自定义命名的Key,调用
key.Name()获取字符串类型的Key名称 - 如果是自动生成的数值ID的Key,调用
key.ID()获取int64类型的ID - 调用
key.Parent()获取父实体的Key(如果存在的话)
内容的提问来源于stack exchange,提问作者Shane Best
相关产品推荐
相关产品推荐

