我想过滤category
值的数据,但我不知道如何在mongoengine
中执行此操作。
我试试:
data = Data.objects.exclude(category="").order_by('-datetime')[:500]
但得到了错误:
exclude() got an unexpected keyword argument 'category'
我在文档中找不到该方法,你是怎么做到的?
答案 0 :(得分:2)
我觉得你混淆了两个概念:过滤文档和返回文档子集。
exclude
告诉mongo返回没有类别字段的所选文档。它不会过滤文档,只返回相同的文档,但没有类别字段:文档子集。剥离不需要的东西可以提高性能。 exclude
和only
实现了相同的目标,exclude
黑名单字段除外,only
白名单字段。
您想要的是使用Queryset过滤文档:
data = Data.objects({'category':{'$ne':''}}).order_by('-datetime')[:500]
data = Data.objects(category__ne='').order_by('-datetime')[:500]
请参阅the tutorial。
答案 1 :(得分:1)
.exclude()
方法只接受位置参数;字段名称。那就是你需要使用query operator使用AppBarLayout
过滤掉类别为空字符串的文档
Toolbar