Python Mongoengine:使用_不是_包含而是列表而不是字符串进行查询
我有一个主题列表,我想从新闻数据库的“标题”字段中筛选出来 我希望解决方案与Python Mongoengine:使用_不是_包含而是列表而不是字符串进行查询,python,mongodb,mongoengine,Python,Mongodb,Mongoengine,我有一个主题列表,我想从新闻数据库的“标题”字段中筛选出来 我希望解决方案与\uu contains所做的相反,但是contains与string一起工作,我想给它一个列表,它将过滤掉包含列表中给出的单词的所有新闻 例如: blacklist=[“Facebook”、“苹果”] 我想使用这个列表,并过滤掉每一条新闻,如果它的标题包含黑名单中的单词 编辑:我想我没有在上面几行阐明我的目标。 使用上面声明的黑名单,在新闻列表中,排除黑名单中“包含”单词的所有新闻。(注意:我想用'list'来解决这个
\uu contains
所做的相反,但是contains与string一起工作,我想给它一个列表,它将过滤掉包含列表中给出的单词的所有新闻
例如:
blacklist=[“Facebook”、“苹果”]
我想使用这个列表,并过滤掉每一条新闻,如果它的标题包含黑名单
中的单词
编辑:我想我没有在上面几行阐明我的目标。
使用上面声明的黑名单
,在新闻列表中,排除黑名单
中“包含”单词的所有新闻。(注意:我想用'list'来解决这个问题,因为这个列表,即黑名单
可能包含很多单词。)
e、 g。
“Facebook不利于隐私”=排除在外
“苹果可能对隐私友好”=不包括在内
“比特币市场崩溃”=未排除您可以通过和/或通过MongoEngine的
谢谢你的回答。好。。。你的回答是对的,但这与我的目标有点不同。我已经在原来的问题中澄清了。所以
包含的
关键字的作用是它接受两个字符串参数,并在第二个字符串中查找第一个字符串。就像在“苹果可能对隐私友好”中找到“苹果”。但在这里,我不是给它一个字符串,即“苹果”,我给它[“苹果”,“脸谱”],它应该找到给定的单词/字符串是否出现在给定的第二个字符串中。现在,排除/包括是另一回事,目前我只想为他们制作一个过滤器…好的,我想我知道了,我已经更改了答案以匹配这个家伙。。。你又对了。。。但这个问题还有很多。我想用列表来做。我的列表不会只包含这些单词,可能会有很多单词,也可能没有单词…只要使用列表中项目的数量就可以了。。。你可以很明显地动态构建它。。。怎么用?请告诉我。。。
from mongoengine import connect, Document, StringField, Q
connect()
class TestDoc(Document):
s = StringField()
TestDoc(s="Facebook is this").save()
TestDoc(s="and Twitter is that").save()
TestDoc(s="Something else").save()
query = Q(s__contains="Facebook") | Q(s__contains="Twitter")
TestDoc.objects(query) # finds the 2 objects
# or dynamically from a list...
my_fancy_list = ['Facebook', 'Twitter']
dynamic_query = Q(s__contains=my_fancy_list.pop())
while my_fancy_list:
dynamic_query |= Q(s__contains=my_fancy_list.pop())
TestDoc.objects(dynamic_query) # finds the 2 objects