Python mongoengine筛选器字段如何不为空?

Python mongoengine筛选器字段如何不为空?,python,mongodb,mongodb-query,mongoengine,Python,Mongodb,Mongodb Query,Mongoengine,我想用category值筛选数据,但我不知道如何在mongoengine中执行此操作 我尝试: data = Data.objects.exclude(category="").order_by('-datetime')[:500] 但有一个错误: exclude() got an unexpected keyword argument 'category' 我在文档中找不到该方法,您是如何做到的?该方法只接受位置参数;字段名称。因此,您需要使用category\uu ne='' 我感觉

我想用
category
值筛选数据,但我不知道如何在
mongoengine
中执行此操作

我尝试:

data = Data.objects.exclude(category="").order_by('-datetime')[:500]  
但有一个错误:

exclude() got an unexpected keyword argument 'category'
我在文档中找不到该方法,您是如何做到的?

该方法只接受位置参数;字段名称。因此,您需要使用
category\uu ne=''


我感觉您混淆了两个概念:过滤文档和返回文档子集

返回文档子集
exclude
告诉mongo返回不带类别字段的选定文档。它不会过滤文档,只返回相同的文档,但没有类别字段:文档子集。去掉不需要的东西可以提高性能<代码>排除和
实现相同的目标,除了
排除
黑名单字段,而
白名单字段

过滤文档 您需要的是使用查询集筛选文档:

data = Data.objects({'category':{'$ne':''}}).order_by('-datetime')[:500]
或使用:


请参阅。

限制
和切片相同此处是
data = Data.objects({'category':{'$ne':''}}).order_by('-datetime')[:500]
data = Data.objects(category__ne='').order_by('-datetime')[:500]