2010-07-08 20 views
1

是否可以找出實體的索引?例如,我的用戶正在創建數千個Foos。我可以使用它的鍵找到一個任意的Foo實例,但我不知道它的索引與所有其他Foos相比。我想弄清楚「這是20000美元的Foo 12」。我只有一個Foos的排序順序。有這樣的可能嗎?找出給定一些過濾器的實體的索引?

謝謝

回答

2

不平凡。

如果你知道你的實體的關鍵,你可以使用你的排序順序做一個只有鍵的查詢,只是迭代(和計數)返回的鍵,直到找到你想要的。您可以使用查詢遊標和任務鏈將作業分成合理的塊。

如果您的索引只是創建的順序,您可以通過存儲單個計數器實體來交替取消歸一化。每次你想創建一個新的Foo,事務性地鎖定計數器對象,增加它,然後將新的計數器值寫回到計數器和新的Foo。這會阻止您一次創建多個Foo實體,但如果您不需要立即向用戶返回ID,則可以將實體創建推遲到一個任務。