我有一个我继承的Google DataStore,这个数据存储区有大约9M的记录。我想删除所有旧记录(比如1个月以前的所有记录)。一般来说,当我使用谷歌云控制台数据存储 - >按类查询时,我可以将SQL语句放入:
select * from table limit 5
但是,当我尝试使用“通过gql查询”来执行删除行之类的操作时:
delete from table where date<"2019-01-01"
它不起作用 - 我收到错误:“GQL查询错误:遇到”删除“在第1行第1列。期待:”选择“...”
是否有一种简单的方法可以在所有旧记录上运行删除?
您无法使用GQL删除。如果你想删除你应该使用客户端libraries之一。
一种简单的方法是编写脚本并在需要时运行它。
代码(Python 2.7):
from google.appengine.ext import ndb
from datetime import date
kind = ModelX #kind whose entries you want to delete
check = date(2019,1,1) # Date to be used to check records
# GQL Query to fetch keys of all older records
all_keys = kind.gql("WHERE date <= :1",check).fetch(keys_only = True)
# Deleting all entries at once
ndb.delete_multi(all_keys)
希望这能回答你的问题!!!