【问题标题】:Can a repeated property be used as a regular property in NDB?可以将重复属性用作 NDB 中的常规属性吗?
【发布时间】:2017-04-17 11:07:07
【问题描述】:

在 Google App Engine 的 NDB 中,说我需要一个实体来:

  • 有时包含一个字符串
  • 有时包含字符串列表
  • 从不要求该字段
  • 我从不需要同时使用两者

鉴于对具有单个元素的重复属性的查询与对非重复属性的查询相同,即使我有时将其用作常规字段,具有单个重复字段也会存在性能差异或任何缺点字符串属性? (抛开重复和非重复不同字段的可读性更好)

基本上:

class model1(ndb.Model):
    str1 = ndb.StringProperty(repeated=True)

class model2(ndb.Model):
    str1 = ndb.StringProperty()
    str2 = ndb.StringProperty(repeated=True)

谢谢。

【问题讨论】:

    标签: google-app-engine app-engine-ndb google-app-engine-python


    【解决方案1】:

    当然可以,但该字段将是一个列表。 如果您不存储任何内容,它将是一个空列表。如果您添加一个字符串,它将是一个具有一个值的列表。

    请记住,由于该字段将是一个列表,因此添加值只需调用“field.append(yourstring)”

    【讨论】:

    • 谢谢,与单个字段相比,从单元素列表查询时会不会有成本/性能损失?
    • 无,因为它们有索引。即使你有 1000 个元素,成本也是一样的
    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    相关资源
    最近更新 更多