在Google数据存储区中,是否可以获取特定项目的光标?

时间:2018-11-13 05:40:19

标签: google-cloud-datastore

可以使用Datastore.key为一个元素生成一个新密钥:

const taskKey = datastore.key(['Task', 'sampleTask']);

运行查询时,我们可能会获得一个endCursor,可用于获取下一个结果。

光标是一些base64编码的令牌,其中包含项目ID,种类和获取的最后一个元素的键,以及一些未知的二进制数据。

在给定项目的键和kind + project ID的情况下,是否会有一种方法/方法来获取base64游标值?

2 个答案:

答案 0 :(得分:1)

如前所述,由于光标与查询相关联,因此无法从键中推断出光标。但是,您可以按键过滤查询。例如。从任务中选择*,其中>键(任务,“ sampleTask”)

答案 1 :(得分:0)

否,不可能。

或者我应该说,(尝试)从一个实体本身获取一个游标并没有多大意义,因为游标仅在原始查询的上下文中才有意义。来自Limitations of cursors(重点是我):

  

游标受到以下限制:

     
      
  • 游标只能由执行原始查询的同一应用程序使用,并且只能继续同一查询。使用光标   在随后的检索操作中,您必须重新构造   完全相同的原始查询,包括相同的实体种类,祖先   过滤器,属性过滤器和排序顺序。 不可能   使用游标检索结果,而无需从中设置相同的查询   它是最初生成的。
  •   

也来自Cursors and data updates

  

光标的位置定义为结果列表中的位置   最后一个结果返回之后。光标不是在中的相对位置   列表(不是偏移量);这是Cloud Datastore的标记   开始搜索结果时可以跳转。