重复的 属性 可以用作 NDB 中的常规 属性 吗?
Can a repeated property be used as a regular property in NDB?
在 Google App Engine 的 NDB 中,说我需要一个实体来:
- 有时包含一个字符串
- 有时包含一个字符串列表
- 永远不需要该字段
- 我从不同时需要两者
考虑到对具有单个元素的重复 属性 的查询与对非重复 属性 的查询工作相同,使用单个重复字段是否会有性能差异或任何缺点即使有时我会将它用作常规 StringProperty? (撇开重复和非重复字段具有更好的可读性)
基本上:
class model1(ndb.Model):
str1 = ndb.StringProperty(repeated=True)
对
class model2(ndb.Model):
str1 = ndb.StringProperty()
str2 = ndb.StringProperty(repeated=True)
谢谢。
当然可以,但是该字段将是一个列表。
如果您不存储任何内容,它将是一个空列表。如果您添加一个字符串,它将是一个具有一个值的列表。
请记住,由于此字段将是一个列表,因此要添加值只需调用“field.append(yourstring)
在 Google App Engine 的 NDB 中,说我需要一个实体来:
- 有时包含一个字符串
- 有时包含一个字符串列表
- 永远不需要该字段
- 我从不同时需要两者
考虑到对具有单个元素的重复 属性 的查询与对非重复 属性 的查询工作相同,使用单个重复字段是否会有性能差异或任何缺点即使有时我会将它用作常规 StringProperty? (撇开重复和非重复字段具有更好的可读性)
基本上:
class model1(ndb.Model):
str1 = ndb.StringProperty(repeated=True)
对
class model2(ndb.Model):
str1 = ndb.StringProperty()
str2 = ndb.StringProperty(repeated=True)
谢谢。
当然可以,但是该字段将是一个列表。 如果您不存储任何内容,它将是一个空列表。如果您添加一个字符串,它将是一个具有一个值的列表。
请记住,由于此字段将是一个列表,因此要添加值只需调用“field.append(yourstring)