1

我正在使用 Flask-MongoAlchemy 构建一个 Flask 应用程序,但在组合查询时遇到了麻烦。

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

{'name': 'some_name',
 'participants': [
     {'participant_id': 12345}
     {'participant_id': 98765}
     ]
}

我正在尝试编写方法Participant.groups(),该方法调用数据库以返回所有participant_id匹配的 Group 实例self.id

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

在查看了此处的 SO 答案后,我尝试了

def groups(self):
    return Group.query.filter(Group.participants.participant_id == self.id)

但也许不足为奇的是,它在尝试评估时会引发错误participants.participant_id

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

谢谢!!

4

1 回答 1

-1

巨大的成功!

在这种情况下,下拉到 PyMongo 语法似乎是要走的路:

def groups(self):
    return Group.query.filter(
        {'participants': {'$elemMatch': {'participant_id': self.id}}}).all()
于 2014-08-12T16:52:40.993 回答