2012-08-31 5 views
3

Comment fonctionne l'indexation pour la propriété répété/liste, j'ai lu quelque part que l'ajout à la liste ajoutera simplement un index et ne comptera pas comme index modifié. Est-ce toujours correct?Comment fonctionne l'indexation de propriété répétée dans datastore avec ndb

Est-ce la même chose pour la suppression de la liste, la suppression d'une valeur dans la liste supprimera-t-elle simplement cet index unique et compte-t-elle comme 2 écritures?

Si ce que je comprends est correct, alors ce

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() 

les mises à jour sont, 1 écriture + 2 écriture d'index, puis un autre, 1 écriture + 2 écriture d'index, puis, 1 écriture + 2 index écrit pour suppression.

Est-ce correct?

Ma dernière question à ce sujet est la limite de 5000 index par entité existe toujours? Cause J'ai essayé d'exécuter 10k localhost cela semble fonctionner.

supplémentaires:

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

Est-ce juste ajouter un autre indice? ou l'index contient-il l'index de la liste en faisant cela ajuster la liste entière?

Répondre

2

I figured it out avec ce

appstats_CALC_RPC_COSTS = True 

Activé calculatrice de facturation appstat, savait jamais à ce sujet. La réponse est la même que l'ajout, il ne fait que 1 écriture + 2 index écrire ajouter ou supprimer de la liste où que ce soit. Egalement avoir une valeur dupliquée dans la liste et en supprimer une seule cause 1 écriture, ce qui signifie qu'il ne stocke que l'index unique pour la duplication. Aussi, il ne se soucie pas de l'ordre dans la liste, le réordonnancement ne fera que provoquer une entité.

Questions connexes