假设我有一个 SON 文档(通常使用 mongodb 查询获取,但不一定)和一个查询过滤器表达式(例如{ 'x': {'$ne': 5} }
),是否有客户端方法来针对过滤器测试文档(使用 pymongo)?
预期行为:
satisfies({ 'x': 1 }, { 'x': {'$ne': 5} })
=> True
satisfies({ 'x': 5 }, { 'x': {'$ne': 5} })
=> False
MongoDB 的匹配器算法是用 C++ 编写的。您至少需要在 Python 中对匹配器进行部分重写,据我所知,它不存在。
我发现了这个有趣的 mongomock项目。
filter_applies ()函数似乎就是它。
def filter_applies(search_filter, document):
"""
This function implements MongoDB's matching strategy over documents in the find()
method and other related scenarios (like $elemMatch)
"""
...