如何使用NDB打印实体的密钥

时间:2013-10-04 17:12:34

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

在旧数据存储区中,我可以通过

打印实体的密钥

旧数据存储

q = MyDB.all()
q.filter(“property”,proertyValue)

getKey = q.get()
printKey = getKey.key#这将返回字符串,如agxkZXZ-c3l ...

NDB

q = MyNDB.query()
q = q.filter(MyNDB.property == propertyValue)

getKey = q.get()
printKey = getKey.key#它返回id如5066549580791808,但实际上我想要一个键值

如何在NDB上打印键值

谢天谢地。

1 个答案:

答案 0 :(得分:2)

这取决于您希望如何打印密钥。在ndb中进行键表示时有几种选择。

1)获取字符串的websafe base64编码序列化,如下所示:

printKey = getKey.key.urlsafe()

link to docs

2)或者,如果您希望像使用DB一样表示密钥,您实际上可以使用to_old_key()从NDB密钥获取数据库密钥:

printKey = getKey.key.to_old_key()

link to docs