gpt4 book ai didi

Python Storm - 查询引用集(一对多)

转载 作者:可可西里 更新时间:2023-11-01 08:51:06 24 4
gpt4 key购买 nike

我有 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.filedownloads 集的 File 对象。这可以在 python 中通过查询所有 File 对象并手动过滤 File.filedownloads 字段来完成,但我认为有一种更简洁的方法来做到这一点(这不是没用 :) ):

store.find(File, File.filedownloads != None)
store.find(File, File.filedownloads.count() != 0)

我知道第一个在 SQLAlchemy 中有效:

session.query(File).filter(File.filedownloads != None)

最佳答案

我能够找到处理内部 ID (fid) 的“脏”解决方法

# Find all files that have been downloaded
subselect = Select(FileDownload.fid, distinct=True)
for f in store.find(File, File.fid.is_in(subselect)):
print(f.filename, f.filedownloads.count())

关于Python Storm - 查询引用集(一对多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com