我正在尝试从我的收藏夹中获取一些特定文件。我希望文档在数据库的一个字段(display_url)中有一个子字符串,并且还要寻找在另一个字段(edge_media_to_caption.edges.node.text)中必须具有的一些关键字。第一个字段是url,因此我需要使用通配符,似乎有效的唯一方法是使用以下信号:。*
但是我在比赛的第二部分使用$ in遇到问题,我认为它不起作用。第二个字段是一个字符串字段,其中text>
因此,我需要获取具有我给出的正则表达式的文档(我单独测试了此部分并且正在运行),并且还包含至少一个单词['。电晕。','。病毒。','。病毒。','。冠状病毒病。','。大流行。','。血友病。']。
client = MongoClient('localhost', 27017)
db = client.basededados
collection = getattr(db, pdados)
pipeline= [{'$project': {"_id": True,
'legenda': '$edge_media_to_caption.edges.node.text',
'data': '$taken_at_timestamp',
'hash': '$tags',
'id' :'$display_url'}},
{'$match': {'$and': [{"id": {"$regex": '/%s/' % nitem[0]}},
{"legenda": {"$in": ['.*corona.*','.*virus.*','.*vírus.*','.*covid.*','.*pandemia.*','.*pândemia.*']}}
]}}
]
要通配符匹配字符串,请使用regex。在纯Mongo中:
{$in: [/\.corona\./, ...]}
在pymongo中,您可以使用本机Python regexen:
import re
...
{'$in': [re.compile(r'\.corona\.'), ...]}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句