gpt4 book ai didi

python - Tornado/Motor 聚合失败 : yielded unknown object MotorAggregationCursor

转载 作者:行者123 更新时间:2023-12-01 04:03:30 24 4
gpt4 key购买 nike

我在 Tornado 上执行 MongoDB 聚合操作时遇到问题。这是代码,

pipeline = [
{'$match': {
'$or': [
{'owner.id': '56dfdaa4082024b9384c0055'},
{'members.top.member.id':'56dfdaa4082024b9384c0055'}
]
}},
{'$sort': {'date_s': -1}},
{'$skip': 0},
{'$limit': 20},
{'$project':{
'created_at': 1,
'name': 1,
'id': '$_id',
'group.group_id': 1,
'_id': 0,
'permission': 1,
'owner': 1,
'type': 1,
'members.total': 1,
'desc': 1,
'declared': 1
}}
]
cursor = yield db.activities.aggregate(pipeline)

相同的命令在 MongoDB 管理工具上运行得很好(我使用的是 MongoChef)。但是在Python Tornado上,使用“yield”异步操作,它会抛出异常,如下所示

yielded unknown object MotorAggregationCursor(<motor.core._LatentCursor object at 0x00000000042DEA58>)

有什么想法吗?我缺乏进一步调试的线索...谢谢

最佳答案

实际.aggregate()方法本身不是“异步”的。但光标迭代是。

所以相反:

cursor = db.activities.aggregate(pipeline)
while (yield cursor.fetch_next):
doc = cursor.next_object()
print(doc)

就像文档所说的那样。

关于python - Tornado/Motor 聚合失败 : yielded unknown object MotorAggregationCursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36097756/

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