批量查询分页?是否可以从数据存储中批量获取并获取游标?

我目前正在从数据存储中请求 20 个条目,使用游标将这些条目返回给用户,如果用户要求更多条目,请使用游标作为新的开始并请求接下来的 20 个条目。


代码看起来像


q := datastore.NewQuery("Item").

    Limit(limit)


if cursor, err := datastore.DecodeCursor(cursor); err == nil {

    q = q.Start(cursor)

}


var is []Item

t := q.Run(c)

for {

    var i Item

    _, err := t.Next(&i)

    if err == datastore.Done {

        break

    }


    is = append(is, i)

}

如果重要的是这里是完整的代码:https : //github.com/koffeinsource/kaffeeshare/blob/master/data/appengine.go#L23


使用带有 的循环看起来是一种反模式append,但是在使用GetMulti/GetAll时我没有看到获取光标的方法,或者我是否遗漏了什么?


我确实希望在用户查询数据存储时添加数据,因此偏移量可能会产生重复的结果。在这种情况下,我应该关心批处理吗?


繁花不似锦
浏览 175回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go