我使用GAE NDB python2.7
我的两款车型代码:
class A(ndb.Model):
def X(self, value):
:: # some statements to return a value
return range
def Y(self, value):
:: # some statements to return a value
return range
def Z(self, value):
:: # some statements to return a value
return range
property_1 = ndb.IntegerProperty(default=0, indexed=False)
property_2 = ndb.IntegerProperty(default=0, indexed=False)
property_3 = ndb.IntegerProperty(default=0, indexed=False)
property_4 = ndb.IntegerProperty(indexed=False)
# Computed values
computed_property_1 = ndb.ComputedProperty(lambda e: e.X(e.property_1))
computed_property_2 = ndb.ComputedProperty(lambda e: e.Y(e.property_2))
computed_property_3 = ndb.ComputedProperty(lambda e: e.Z(e.property_3))
date_added = ndb.DateTimeProperty(auto_now_add=True, indexed=False)
date_modified = ndb.DateTimeProperty(auto_now=True, indexed=False)
class B(ndb.Model):
property_5 = ndb.IntegerProperty()
property_6 = ndb.StructuredProperty(A)
date_added = ndb.DateTimeProperty(auto_now_add=True, indexed=False)
date_modified = ndb.DateTimeProperty(auto_now=True, indexed=False)
我的查询代码:
^{pr2}$当我对模型B的实体执行上述查询时,会执行任何写操作吗?(尤其是ComputedProperty和DateTimeProperty(带有“auto帴now”)属性)
如果是的话,是否会限制在每秒1次写入(我认为这是免费应用程序的限制)
如果是,并且如果我有50个实体匹配查询,它会在完成查询并返回匹配的实体集(任何查询完成时间的估计值)之前先完成写操作(上面提到的)
如果我在B班换下一行,以上答案有什么不同吗
property_6 = ndb.StructuredProperty(A)
与
property_6 = ndb.StructuredProperty(A, repeated=True)
执行查询时没有写入操作。这同样适用于结构属性为StructuredProperty的两个变体。另外,}只在写操作期间设置。我不是百分之百确定,但据我所知,计算属性在写入时也会更新(我还没有使用它们)。在
auto_now_add
和{相关问题 更多 >
编程相关推荐