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]