Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Google App Engine-NDB-设置多条记录的属性值_Python_Google App Engine_App Engine Ndb - Fatal编程技术网

Python Google App Engine-NDB-设置多条记录的属性值

Python Google App Engine-NDB-设置多条记录的属性值,python,google-app-engine,app-engine-ndb,Python,Google App Engine,App Engine Ndb,我在谷歌应用程序引擎上使用NDB和Python。在具有相同值的多个实体上更新属性的正确方法是什么?NDB相当于: 更新通知集read=true,其中user\u id=123 用例是我有这些扇出通知。特定用户希望将其所有通知设置为已读(可能为100)。我知道我可以使用get_async和put_async来获取每个未读通知并将其设置为read,但我担心获取可能100次序列化/反序列化所造成的延迟 任何建议都非常有用。您可以使用查询方法为每个实体调用函数。为了获得最佳性能,请不要忘记\u asyn

我在谷歌应用程序引擎上使用NDB和Python。在具有相同值的多个实体上更新属性的正确方法是什么?NDB相当于:

更新通知集read=true,其中user\u id=123

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


任何建议都非常有用。

您可以使用查询方法为每个实体调用函数。为了获得最佳性能,请不要忘记
\u async


但是GAE最有用的服务之一是任务队列,特别是在这样的情况下。如果将和结合起来,您可以轻松处理任意数量的实体。

任务队列是一个很好的建议,我曾预计,如果确实需要获取所有实体以更新其属性,则可能需要使用它们。不过我想知道地图是怎么回事。我不是真的转换(或映射)任何数据(我不关心结果)。我只需要把数据放进去。仍然认为映射是合适的吗?
map()
可以很好地处理少量结果,否则您希望使用延迟库示例。别忘了把你的拼图分批放在一起。(对每个实体调用
ndb.put\u multi()
vs
model.put()