我使用谷歌数据存储来获取用户的数据:
这就是我想要做的事情:
updated_at [indexed]
属性将设置为当前时间戳。updated_at
上的数据,并返回存储光标供以后使用。updated_at
时间戳。我做错了什么或是这样的?如果这是自然行为,那么获取最新实体的首选方法是什么?
答案 0 :(得分:1)
披露此答案仅代表我了解GAE数据存储的工作原理。现实可能不同。但无论如何,解决方案应该可行。
您可以将游标视为指向链接列表中节点的指针。 基本上它只存储用于获取它的查询以及" last / current"实体。在数据存储区中更新实体时,无法更新游标。
当您更改实体的字段updated_at
时,它不会更改存储在光标处的密钥。因此,如果更新filtred / ordered属性,则旧光标指向同一节点,但位于不同的"链中#34;。
解决方案:您可以存储最后一个( max )updated_at
并使用.filter('updated_at >', last_updated_at)
查询数据,而不是存储光标。这样你就会:
答案 1 :(得分:1)
将数据存储区游标视为指向“实体之间”,如“此处是继续扫描的位置”。
documentation表示“...一个游标,它是一个不透明的base64编码字符串,用于标记检索到的最后一个结果的索引位置”,但最后的结果将不会被重新检索。
答案 2 :(得分:0)
这是预期的行为,因为数据是在创建光标和使用光标之间修改的。来自Cursors and data updates:
...如果查询的结果在使用游标之间发生变化,那么 查询只会注意>>光标后中发生的更改。 ...