0
我想知道如果批处理请求数据存储将保存记录顺序时请求完成?谷歌云数据存储批处理操作序列
我使用标准的谷歌云/数据存储客户端库来执行批量获取请求,像这样(来自Datastore的文档)。
const keys = [taskKey1, taskKey2];
datastore.get(keys)
.then((results) => {
// Tasks retrieved successfully.
const tasks = results[0];
console.log(tasks);
});
我怀疑结果的排列顺序与按键数组的顺序相同,但是在我的工作示例中并不是这样。
那么,我做错了什么,或者它是否Google Datastore不保留批量操作的顺序?
其实这是不是我在寻找。我需要得到这个实体使用这个键。顺便说一下,直接键获取和查询获取方式的性能如何? – QuestionAndAnswer
据我所知,默认情况下,数据存储按键值排序实体。除非您使用查询来确定不同的排序,否则应该检索按键排序的匹配实体。看起来您需要在应用程序中对结果进行排序(检索后,假设您无法在Datastore命令中转换原始排序)。关于性能,'get()'方法应该比使用'key'过滤器的查询更快,但除非每天执行数十万或数百万次请求,否则我不会期望有相当大的差异。 –
这就是目前实施的方式。 Manuak在我的代码中排序。但我真的不喜欢这个解决方案。 Si,现在我会离开它,也许Datastore的开发者会在未来推出解决这个问题的东西。 – QuestionAndAnswer