使用来自 mongodb 的 pymongo 进行搜索

Searching using pymongo from mongodb

我正在使用 Flask 应用程序查询来自 mongodb 的数据。来自 mongodb 的文档采用以下格式。

[{'organization_name': 'Example 1', 'date': '2021-10-15', 'url': 'https://www.example1.com/events/performances/641/2019-10-13/'}, {'organization_name': 'Example 2', 'date': '2021-10-21', 'url': 'https://file2.org/masterworks'}, {'organization_name': 'Example 3', 'date': '2021-10-21', 'url': 'https://file2.org/masterworks2'}]

现在基于url的查询和搜索是这样执行的

    filter_stuff = {'url': 1, 'organization_name': 1, 'date':1, '_id': 0}
    data = eventcol.find({'url': url}, filter_stuff)

此处搜索仅适用于精确完整 url。如果给出了 url 的任何部分,那么如何进行搜索,所有具有该部分的数据都会作为结果返回。

如果搜索 file2 则结果为 https://file2.org/masterworks and https://file2.org/masterworks2 的文档,如果搜索 events 则结果为 https://www.example1.com/events/performances/641/2019-10-13/

你能做这样的事情吗?

from pymongo import MongoClient

client = MongoClient()
db = client.test

def main(search_string):
    collection = db.eventcol
    for doc in collection.find({"url": {"$regex": search_string}}):
        print(doc)