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

时间:2017-02-14 20:25:24

标签: google-app-engine reference app-engine-ndb datastore

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

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

在使用db时我似乎可以使用ReferenceProperty,但是当我查看ndb的文档时,我似乎有点困惑,因为我无法找到{{ 1}}。

因此,如果使用ReferenceProperty,我想通过引用{{1}的id来让类ndb的实体归属于类Lamp()的实体所有。 }}, 我该怎么办?希望它像我下面写的那样,虽然我很自信我下面写的内容实际上并不起作用:

User()

1 个答案:

答案 0 :(得分:0)

ndb.KeyProperty(kind="User")

中显示的uu

如果您有一个用户lamps = Lamp.query(Lamp.owner == u.key).fetch(),并希望l拥有所有灯具,那么您就可以这样做:

l

如果你有一盏灯owner = l.owner.get()并希望得到KeyProperty的拥有者,你就可以这样做:

/** * Create a native Guava Cache instance for the specified cache name. * @param name the name of the cache * @return the native Guava Cache instance */ protected com.google.common.cache.Cache<Object, Object> createNativeGuavaCache(String name) { if (this.cacheLoader != null) { return this.cacheBuilder.build(this.cacheLoader); } else { return this.cacheBuilder.build(); } }

您还可以使用祖先来引用您的clases,而不指定https://cloud.google.com/appengine/docs/python/ndb/entity-property-reference

中显示的 [ { "id": 1, "startTime": "00:00:00", "endTime": "00:00:05", "textEn": "towns, in late 15th-century England.", "textRu": null }, { "id": 2, "startTime": "00:00:05", "endTime": "00:00:10", "textEn": "the first thing to note is that in stark contrast to today, England was an overwhelmingly rural country.", "textRu": null } ]