【问题标题】:How does repeated property indexing work in datastore with ndb重复属性索引如何在使用 ndb 的数据存储中工作
【发布时间】:2012-08-31 20:47:04
【问题描述】:

重复/列表属性的索引如何工作,我在某处读到添加到列表只会添加一个索引,不会算作修改后的索引。这仍然正确吗?

从列表中删除是否相同,删除列表中的值是否只会删除该单个索引并计为 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()

这只是添加另一个索引吗?还是索引包含列表索引,从而调整整个列表?

【问题讨论】:

    标签: google-app-engine google-cloud-datastore


    【解决方案1】:

    我想通了

    appstats_CALC_RPC_COSTS = True
    

    在 appstat 中启用了计费计算器,从来不知道这一点。 答案与添加相同,它只执行 1 写入 + 2 索引写入添加或从列表中删除。

    在列表中也有重复值并且删除一个只会导致 1 次写入,这意味着它只存储单个索引以进行重复。它也不关心列表中的顺序,重新排序只会导致实体放置。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2013-01-21
      • 2020-08-14
      相关资源
      最近更新 更多