Bra*_*rad 5 google-app-engine app-engine-ndb
我试图做相当于"更新或插入(如果不存在)".
知道怎么做吗?我能想到的唯一解决方案是执行GQL查询,然后更新返回的记录,或者如果查询没有返回,则创建一个新的.
这种方法不是原子的 - 但我想知道是否有一种"简单"的方法来做到这一点.
不存在这样的原子操作。你需要使用交易。
阅读文档怎么样,db 和 ndb 都有一个“获取或插入”方法,该方法是事务性的,然后您将值更新/应用到事务内的属性,然后写入(put())实体。
https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_get_or_insert
另请记住,查询结果受“最终”一致性的影响,除非它们是祖先查询。
了解有关交易的更多信息https://developers.google.com/appengine/docs/python/ndb/transactions
| 归档时间: |
|
| 查看次数: |
3120 次 |
| 最近记录: |