Подсчет количества строк в отношении многие ко многим (SQLAlchemy)
У меня есть отношения многие ко многим, скажем, записи в блоге и теги. Теперь я хочу узнать, сколько записей содержит конкретный тег.
Представьте себе следующие модели (упрощенно):
rel_entries_tags = Table('rel_entries_tags', Base.metadata,
Column('entry_id', Integer, ForeignKey('entries.id')),
Column('tag_id', Integer, ForeignKey('tags.id'))
)
class Entry(Base):
__tablename__ = 'entries'
id = Column(Integer, primary_key=True)
title = Column(String(80))
text = Column(Text)
tags = relationship('Tag', secondary=rel_entries_tags, backref=backref('entries'))
def __init__(self, title, text):
self.title = title
self.text = text
self.tags = tags
class Tag(Base):
__tablename__ = 'tags'
id = Column(Integer, primary_key=True)
name = Column(String(80), unique=True, nullable=False)
def __init__(self, name):
self.name = name
Мой подход к подсчету количества записей для тегаlen(db_session.query(Tag).get(1).entries)
, Проблема в том, что когда он получаетdb_session.query(Tag).get(1).entries
SQLAlchemy выбирает все записи со всеми их столбцами для тега, однако я хочу только количество записей, а не сами записи. Есть ли более оптимальный подход к этой проблеме?
Благодарю.