GAE(Google App Engine)pythonのNDBで特定のデータを消す方法

最近、GAEのNDBをいじっていて、わからないことが次々に出てくるんだけど、ネットでいろいろ調べていると、stackoverflowって海外のサイトと、公式のドキュメント、この2つが圧倒的に役に立つ。たまに英語のニュアンスがわからないくて、日本語のみで検索することがあるけど、情報量が違いすぎて、英語ネイティブとの差は大きいなと感じる。

で、特定のデータを消す方法だけど、NDBでは消したいデータのキーを取り出してから消去する、らしくて
X.key.delete()
みたいに書くらしい。

特定の条件に当てはまるデータを消したい場合は、delete_multiを使うといいらしくて

q1 = A.query()
q2 = q1.filter( >=を使ったフィルター ) # Filter
q3 = q2.filter( <=を使ったフィルター ) # Filter ndb.delete_multi(q3.fetch(keys_only=True)) みたいにしたら簡単に消したいデータだけ消すことができた。 keys_only=True というのは、fetchのオプションで、keys_only=Trueとすると、データ(エンティティ)を返すんではなくて、キーのみを返すらしい。 削除に必要なのはキーだけなので、あとは簡単にndb.delete_multiで一発で消去できる。

コメントを残す