我在变量中有一个dicts列表(让我们称之为 lod ),以及一个代表mongodb过滤器的dict(让我们称之为 my_filter )。有没有办法在 lod 上应用过滤器而不在集合中插入 lod ?
为了更清楚一点,我想知道是否存在可以执行以下操作的 magic_function :
>>> lod = [{"name": "alice"}, {"name": "bob"}, {"name": "carol"}]
>>> my_filter = {"name": {"$in": ["alice", "carol"]}}
>>> magic_function(lod, my_filter)
[{'name': 'alice'}, {'name': 'carol'}]
由于
答案 0 :(得分:0)
您也许可以使用mongodb模拟库并自己实现magic_function。 https://github.com/mongomock/mongomock
以下是一个例子:
def magic_function(lod,my_filter):
collection = mongomock.MongoClient().db.collection
for doc in lod:
collection.insert(doc)
res = collection.find(my_filter)
result = []
for doc in res:
del doc['_id']
result.append(doc)
return result
lod = [{"name": "alice"}, {"name": "bob"}, {"name": "carol"}]
my_filter = {"name": {"$in": ["alice", "carol"]}}
print(magic_function(lod, my_filter))