代码之家  ›  专栏  ›  技术社区  ›  Roy Yin

在Google云数据存储模型中设置默认值None或“”有什么区别?

  •  0
  • Roy Yin  · 技术社区  · 6 年前

    我有一个关于 None '' 在谷歌云中使用数据存储时的值。 e、 g。

    class User(ndb.Model):
        age = ndb.IntegerProperty(default=None)
        name = ndb.StringProperty(default='')
        address = ndb.StringProperty(default=None)
    

    我设置默认值是因为我想索引和检索一个实体列表,其中一个属性没有设置值。 将StringProperty默认值设置为 “” 没有一个 ? 哪一个更好,为什么?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Dan Cornilescu    6 年前

    从索引的角度来看,两者没有区别:两者都有 None '' 是属性将具有的实际值(与根本没有设置的值相反),因此实体将被索引。另请参见: Does NDB still index with default=None or properties set to None?

    设置a StringProperty 没有一个 (如果允许的话)在使用时需要额外的类型检查,因为它可能同时包含 string 没有一个 键入值。将其默认值设置为 “” 不需要以下检查 “” 是字符串-因此属性将始终包含 一串 价值观