Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Mongoengine:使用_不是_包含而是列表而不是字符串进行查询_Python_Mongodb_Mongoengine - Fatal编程技术网

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