既存のDBをマッピングする2つの単純なクラスがあります。
class File(object):
__storm_table__ = 'files'
fid = Int(primary=True)
filename = Unicode()
class FileDownload(object):
__storm_table__ = 'filefield_track'
did = Int(primary=True)
fid = Int()
email = Unicode()
date = DateTime()
trackedfile = Reference(fid, File.fid)
File.filedownloads = ReferenceSet(File.fid, FileDownload.fid)
File
空でないセットを持つすべてのオブジェクトを見つけられるようにしたいだけですFile.filedownloads
。File
これは、すべてのオブジェクトをクエリし、フィールドを手動でフィルタリングするだけでPythonで実行できますが、File.filedownloads
これを実行するためのよりクリーンな方法があると思いました(これは機能しません:)):
store.find(File, File.filedownloads != None)
store.find(File, File.filedownloads.count() != 0)
私は最初のものがSQLAlchemyで動作することを知っています:
session.query(File).filter(File.filedownloads != None)