是否有可能找出实体的索引?例如,我的用户正在创建数千个Foos。我可以使用它的键找到任意Foo实例,但我不知道它的索引与所有其他Foos相比。我想弄清楚“这是Foo 12中的20,000”。我只有一个Foos订单。有可能吗?
由于
答案 0 :(得分:2)
不是一件容易的事。
如果您知道实体的密钥,则可以使用排序顺序执行仅密钥查询,并迭代(并计算)返回的密钥,直到找到您要查找的密钥。您可以使用查询游标和任务链将作业拆分为合理的块。
如果索引只是创建顺序,则可以通过存储单个计数器实体来进行反规范化。每次要创建新的Foo时,事务性地锁定计数器对象,递增它,然后将新的计数器值写回计数器和新的Foo。这确实可以防止您一次创建多个Foo实体,但如果您不需要立即向用户返回ID,则可以将实体创建推迟到任务。