MongoDB MongoEngine ListField获取count()\ len()

时间:2013-12-13 12:08:47

标签: mongodb mongoengine

这是我的文件

class Store(Document):
    store_id = IntField(required=True)
    items = ListField(ReferenceField(Item, required=True))
    meta = {
        'indexes': [
            {
                'fields': ['campaign_id'],
                'unique': True
            },
            {
               'fields': ['items']
            }
        ]
    }

我找不到如何通过检索整个列表来获取ListFIeld len \ count 我需要像

这样的东西
documents.Store.objects.get(store_id=27).items.count()

我发现如何通过mongo console

做到这一点
db.store.find({"store_id" : 27})[0].items.length;

但我需要通过Mongoengine。

len(documents.Store.objects.get(store_id = 27).items)是否会检索所有文档,然后通过Python计算它们?

1 个答案:

答案 0 :(得分:0)

是的,您可以在len()上拨打Store.objects.get(store_id = 27).items功能,因为itemsBaseList类型 像这样len(Store.objects.get(store_id = 27).items
但我无法找到任何mongoengine语法 并且它很常见,因为BaseList不是mongoengine类型:D