【发布时间】:2020-12-26 19:33:12
【问题描述】:
我正在尝试在我的收藏中获取一些特定的文档。我想要在我的数据库(display_url)的一个字段中具有子字符串的文档,并且还要查找另一个字段(edge_media_to_caption.edges.node.text)中必须具有的一些关键词。第一个字段是一个 url,所以我需要使用通配符,唯一可行的方法是使用这个信号:.*
但是,我在使用 $in 的比赛的第二部分遇到问题,我认为它不起作用。第二个字段是一个带有文本的字符串字段>
所以我需要获取具有我给出的正则表达式的文档(我单独测试了这部分并且正在工作)并且还至少包含一个单词 ['.corona.' ,'.virus.','.vírus.','.covid.','.大流行病。','.pândemia.'] 在文本中。
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.*']}}
]}}
]
【问题讨论】:
标签: python python-3.x pymongo pymongo-3.x