2017-03-08 2 views
0

変数内にdictsのリスト(lod)とmongodbフィルタを表すdict(my_filterと呼ぶ)を持っています。フィルターをのlodに貼付する方法はありますか?lodをコレクションに入れませんか?dongsのpythonリストにmongodbフィルタを直接使用する方法はありますか?

もう少し明確にするために、私はそこに存在するかどうかを知りたいのですが、次の操作を行いますいくつかのmagic_function:あなたはおそらく、MongoDBのモックライブラリを使用することができます

答えて

0

>>> lod = [{"name": "alice"}, {"name": "bob"}, {"name": "carol"}] 
>>> my_filter = {"name": {"$in": ["alice", "carol"]}} 
>>> magic_function(lod, my_filter) 
[{'name': 'alice'}, {'name': 'carol'}] 

感謝を自分で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)) 
+0

はそれが私が探していたまさにです、ありがとうございます。 – user3301993

関連する問題