我有没有办法使用数据存储区的GetMulti或“appengine/datastore”包中内置的其他函数来获取单一类型的所有实体?
例如,我有一种“队列”,其中包含许多具有两到三个属性的实体。每个实体都有一个唯一的stringID,我想要得到的是每个唯一stringID的切片或其他可比数据类型。
Queue的目的是存储一些元数据和我将循环并执行cron任务的唯一键名(例如,键“user1”,“user2”和“user3”存储为种类队列然后 - 在cron期间 - 循环并与之交互)。
感谢。
答案 0 :(得分:1)
我是Google App Engine的新手,在潜入之前我没有阅读过这些文档。现在我实际上已经阅读了文档,看起来我会回答我自己的问题。这可以通过一个简单的查询,遍历Keys,并将每个键的StringID附加到一个字符串片段来完成:
var queuedUsers []string
q := datastore.NewQuery("Queue").KeysOnly()
keys, _ := q.GetAll(c, nil)
for _, v := range keys {
queuedUsers = append(queuedUsers, v.StringID())
}