Google App Engine - NDB - 在多个记录上设置属性值

时间:2013-11-15 02:57:11

标签: python google-app-engine app-engine-ndb

我在Google App Engine上使用NDB和Python。在具有相同值的多个实体上更新属性的正确方法是什么? NDB相当于:

UPDATE notifications SET read = true WHERE user_id = 123

用例是我有这些扇出通知。特定用户希望将所有通知设置为已读(可能为100)。我知道我可以使用get_async和put_async来获取每个未读通知并将其设置为read,但我担心通过获取可能的100个序列化/反序列化而产生的延迟。

任何建议都非常明确。

1 个答案:

答案 0 :(得分:2)

您可以使用map() Query方法为每个实体调用一个函数。为获得最佳性能,请不要忘记_async

但GAE最有用的服务之一是任务队列,特别是在这种情况下。如果您合并Query Cursorsdeferred library,则可以轻松处理任意数量的实体。