在客户端测试文档的过滤器

时间:2013-11-13 09:41:54

标签: mongodb pymongo

假设我有一个SON文档(通常使用mongodb查询获取,但不一定),以及查询过滤器表达式(例如{ 'x': {'$ne': 5} }),是否有客户端方式来测试文档过滤器(使用pymongo)?

预期行为:

satisfies({ 'x': 1 }, { 'x': {'$ne': 5} })
=> True
satisfies({ 'x': 5 }, { 'x': {'$ne': 5} })
=> False

2 个答案:

答案 0 :(得分:2)

MongoDB的匹配算法是用C ++编写的。你需要在Python中至少部分重写匹配器,据我所知,这不会存在。

答案 1 :(得分:2)

我找到了这个有趣的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)
    """
    ...