微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在mongoengine python中聚合组

我正在尝试在MongoDB中汇总组.

我们正在使用Python,django,Rest框架和Mongoengine.

这是我的模型的样子:

class TestSnapshot(EmbeddedDocument):
    identifier = StringField()
name = StringField()
created = DateTimeField(
    default = datetime.datetime.Now)

class Test(Document):
    agreement = ReferenceField(Agreement)
history = ListField(EmbeddedDocumentField(TestSnapshot))
created = DateTimeField(
    default = datetime.datetime.Now)

在我看来:

test = models.Test.objects.filter(agreement__in = agreements).aggregate([{
    "$unwind": "$created"
}, {
    "$group": {
    "_id": "$created"
    }
}])
print test

但是我有这样的引用:

OperationFailure: command SON([('aggregate', u 'test'), ('pipeline', [{
    '$match': {
        'agreement': {
            '$in': [ObjectId('558b150a89f4ad3f33ebb8ae')]
        }
    }
    },
    [{
    '$unwind': '$created'
    }, {
    '$group': {
        '_id': '$created'
    }
    }]
]), ('cursor', {})]) on namespace noq.$cmd Failed: exception: pipeline element 1 is not an object

我究竟做错了什么?我是mongo的Python新手.
 感谢您的帮助:)

最好的祝福,
强尼

解决方法:

我已经解决了问题,但我做错了.

models.Test.objects.filter(agreement__in = agreements).aggregate(
  {"$group": { "_id": "$created" }}
)

不管怎么说,还是要谢谢你 :)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐