Jon*_*nny 2 python google-app-engine app-engine-ndb
我想从ndb中删除旧实体.实体有一个名为date的ndb.DateTimeProperty(auto_now_add = True)属性:
class Mjcode(ndb.Model):
code = ndb.StringProperty()
ifv = ndb.StringProperty()
date = ndb.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
这是我走了多远:
mjcode_keys = Mjcode.query().fetch(keys_only=True)
countOfMjcodes = len(mjcode_keys)
self.response.write('Mjcode - found entity count: ' + str(countOfMjcodes) + '<br/>')
if countOfMjcodes > 0:
self.response.write('Deleting...<br/>')
ndb.delete_multi(mjcode_keys)
else:
self.response.write('No delete needed.<br/>')
Run Code Online (Sandbox Code Playgroud)
这将删除实体,但此时会删除所有实体.我应该输入什么语法 - 我想在query()里面?假设我想清除所有早于X秒的实体.
您可以像这样过滤查询:
import datetime
earliest = datetime.datetime.now() - datetime.timedelta(days=7)
Mjcode.query(Mjcode.date <= earliest).fetch(keys_only=True)
Run Code Online (Sandbox Code Playgroud)
这将删除任何超过7天的实体.您可以编辑datetime.timedelta以更改删除实体的时间.
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |