2012-08-31 40 views
3

重複/列表屬性的索引是如何工作的,我在某處讀取添加到列表的內容只會添加一個索引,並且不會計入修改後的索引。這是否正確?重複屬性索引如何在數據存儲中使用ndb

從列表中刪除是否一樣,刪除列表中的一個值只是刪除那個單一的索引並計爲2個寫入?

如果我的理解是正確的,那麼這個

class MyModel(ndb.Model): 
    my_list = ndb.IntegerProperty(repeated=True) 

e = ndb.Key(MyModel, 100).get() 
e.my_list.append(50) 
e.put() 
e.my_list.append(25) 
e.put() 
e.my_list.remove(50) 
e.put() 

的更新, 1寫+ 2索引寫, 然後又 1寫+ 2索引寫, 然後, 1寫+ 2索引寫入刪除。

這是正確的嗎?

我最後的問題是5000個索引每個實體的限制仍然存在? 原因我試着運行10k localhost它似乎工作。

附加:

e.my_list.insert(10) 
e.put() 

這是否只是添加其他指標?或者索引是否包含列表索引,從而調整整個列表?

回答

2

我想通了,在這個appstat

appstats_CALC_RPC_COSTS = True 

啓用結算計算器,從來不知道這一點。 答案與添加答案相同,只有1寫+2索引寫增加或從列表中刪除,無論它在哪裏。

同樣在列表中有重複值並且刪除一個只會導致1次寫入,這意味着它只存儲單個索引以進行重複。它也不關心列表中的順序,重新排序只會導致實體放置。

相關問題