【发布时间】:2025-12-13 15:40:01
【问题描述】:
我正在尝试将聚合与 mongoengine 一起使用。此外,很难找出它是如何工作的(因为文档中没有关于它的内容),我已经取得了一些进展。
但我无法匹配主键:
from mongoengine import *
connect('test')
class User(Document):
username = StringField()
def match_test_username(self):
pipeline = [{ "$match": {"username": self.username} }]
return User.objects.aggregate(*pipeline)
def match_test_id(self):
pipeline = [{ "$match": {"id": self.id} }]
return User.objects.aggregate(*pipeline)
mary = User(username="mary")
mary.save()
mary.reload()
agg_username = mary.match_test_username
for doc in agg_username():
print("match_test_username:", doc)
agg_id = mary.match_test_id
for doc in agg_id():
print("match_test_id:", doc)
如果你运行这个,匹配对用户名(match_test_username)有效,但我不能让它与主键一起工作,我试过键名:_id,pk,id。
我做错了什么?
是否有关于此的任何文档?我发现的是:Flask-MongoEngine & PyMongo Aggregation Query 非常有帮助。
还有什么帮助,有没有更好的方法(“pythonic 方式”)来迭代发现?
提前谢谢你!
【问题讨论】:
标签: python-3.x match aggregate mongoengine