Mongoengine的Inconsistent行为返回结果()作为ArchLinux中的Cursor对象和Ubuntu中的String

时间:2015-08-04 04:10:36

标签: python pymongo bottle mongoengine

我一直在使用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,所以没有把它作为一个问题发布。

确定这不是我的错误。

另外还有解决方法吗?

0 个答案:

没有答案