【发布时间】:2014-09-30 02:28:32
【问题描述】:
我相信我需要使用ndb.delete_multi,但我对如何使它适用于一组特定的键以及它是否是最有效的方法感到困惑。将 Python 2.7 与 Google App Engine 结合使用。
首先,我正在收集要删除的密钥。我不想删除所有内容,只删除那些 1 小时或更长时间的条目。为此,我首先收集满足此条件的键列表。
cs = ChannelStore()
delMsgKeys = []
for x in cs.allMessages():
current = datetime.datetime.now()
recordTime = x.channelMessageCreated
timeDiffSecs = (current - recordTime).total_seconds()
timeDiff = (timeDiffSecs/60)/60
if timeDiff >=1:
delMsgKeys.append(x.key.id())
ndb.delete_multi(?????)
cs.allMessages() 的定义:
def allMessages(self):
return ChannelStore.query().fetch()
首先,这总体上是最有效的方法吗?其次,如何使用通过ndb.delete_multi 语句创建的密钥列表?
---更新----
ndb.delete_multi 的问题与我传递它的键有关。在我上面发布的代码中,密钥应该存储如下:
delMsgKeys.append(x.key)
与上面的ndb.delete_multi 一起工作。
【问题讨论】:
标签: python-2.7 google-app-engine google-cloud-datastore app-engine-ndb