我正在使用 Google App Engine NDB。有时我想要获取指定列表中具有电话号码的所有用户。为此,使用查询的成本非常高,所以我想我只需将 User 实体的 id 值设置为用户的电话号码,这样我就可以直接通过 ids 获取。
问题是电话号码字段是可选的,因此最初创建的用户实体没有电话号码,因此没有 id 值。因此,它将被创建为user = User()
,而不是user = User(id = Phone_number)
。
因此,当用户稍后决定向其帐户添加电话号码时,是否可以将该用户实体的 id 值修改为新电话号码?
最佳答案
实体 ID 构成实体主键的一部分,因此无法更改它。更改它与使用新 key 创建新实体并删除旧实体相同 - 如果您愿意,这是您可以做的一件事。
更好的解决方案是创建一个 PhoneNumber
类型,提供对关联 User
的引用,允许您使用 get 操作进行查找,但不需要每个用户只拥有一个电话号码。
关于python - 修改 Google App Engine 实体 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977110/