Python 使用MongoAlchemy按内部列表的值筛选

Python 使用MongoAlchemy按内部列表的值筛选,python,mongodb,flask,pymongo,mongoalchemy,Python,Mongodb,Flask,Pymongo,Mongoalchemy,我正在用Flask MongoAlchemy构建一个Flask应用程序,但我在整理查询时遇到了问题 对于“集团”文档,我有以下文档结构: {'name': 'some_name', 'participants': [ {'participant_id': 12345} {'participant_id': 98765} ] } 我正在尝试编写Participant.groups方法,该方法调用数据库以返回组中存在与self.id匹配的Participant\u

我正在用Flask MongoAlchemy构建一个Flask应用程序,但我在整理查询时遇到了问题

对于“集团”文档,我有以下文档结构:

{'name': 'some_name',
 'participants': [
     {'participant_id': 12345}
     {'participant_id': 98765}
     ]
}
我正在尝试编写Participant.groups方法,该方法调用数据库以返回组中存在与self.id匹配的Participant\u id的所有实例

不过,我正在阅读MongoAlchemy文档,对于如何基于内部列表进行查询,我发现很少

看了这么多答案后,我试着

但也许并不奇怪,当它试图评估参与者时,会抛出一个错误

有什么见解吗?我见过使用常规MongoDB语法的示例,但我不知道如何使用MongoAlchemy实现这一点

谢谢

非常成功

在本例中,使用PyMongo语法似乎是一个不错的选择:

def groups(self):
    return Group.query.filter(
        {'participants': {'$elemMatch': {'participant_id': self.id}}}).all()
def groups(self):
    return Group.query.filter(
        {'participants': {'$elemMatch': {'participant_id': self.id}}}).all()