谷歌数据存储中ndb实体之间的继承或所有权



我正在开发一个简单的在线数据库,用于在艺术家之间共享技术设备。

我想让一个类User()拥有其他类的实体,例如Lamp()Speaker()

似乎我在使用 db 时可以使用ReferenceProperty,但是当我查看ndb的文档时,这对我来说似乎有点混乱,因为我找不到ReferenceProperty.

那么,如果使用ndb,我想通过引用User()的 id 让类的实体Lamp()由类User()的实体拥有,我该怎么办?希望它类似于我在下面写的内容,尽管我很有信心我在下面写的内容实际上不起作用:

class User(ndb.Model):
    name = ndb.StringProperty()
    email = ndb.....
class Lamp(db.Model):
    owner = db.ReferenceProperty(User)

您要查找的内容ndb.KeyProperty(kind="User")如 https://cloud.google.com/appengine/docs/python/ndb/entity-property-reference 所示

这样,如果你有一个用户u例如,并希望所有灯都归u所有,你可以这样得到它们:

lamps = Lamp.query(Lamp.owner == u.key).fetch()

如果你有一个灯l,想得到l的主人,你可以这样得到它:

owner = l.owner.get()

您还可以使用祖先来引用您的分支,而无需指定KeyProperty,如 https://cloud.google.com/appengine/docs/python/ndb/queries

最新更新