我一直在使用mongoengine
来处理MongoDb以及BottlePy。
最近我使用了一个聚合API。
data.postsByYear = Post._get_collection().aggregate([
{
'$match': {
'isDraft' : False
}
},
{
'$sort': {
'published': -1
}
},
{
'$group': {
'_id': {'year': {'$year':'$published'}},
'posts': {'$push': { 'title': '$title', 'id': '$_id'}}
},
},
{
'$sort': {
'_id': -1
}
}
])
在我的带有python 2.7的ArchLinux机器中,我得到的输出是Cursor对象,就像文档提到的那样。
在mongo shell中,如果从db.collection.aggregate()返回的游标未使用var关键字分配给变量,则mongo shell会自动迭代光标20次。请参阅mongo shell中游标行为的游标,并在mongo Shell中迭代Cursor以处理mongo shell中的游标。
但是在亚马逊的Ubuntu EC2服务器中,该函数的响应是一个字符串。我不确定这是一个pymongo bug还是mongoengine bug,所以没有把它作为一个问题发布。
确定这不是我的错误。
另外还有解决方法吗?