Параметризуйте метод find в python с помощью mongo - PullRequest
0 голосов
/ 05 августа 2020

Файлы для загрузки будут иметь вид WFSIV0101202001.318.tar.gz, WFSIV0101202001.2624.tar.gz et c.

    INPUT_FILE_PATH = 'C:\Files to upload'
try:
    import os
    from google.cloud import storage
    import sys
    import pymongo
    import pymongo.errors
    from pymongo import MongoClient
    from pymongo.errors import ConnectionFailure
except:
    print("missing modules")
try:
    mongo_client = MongoClient(host="xyz.com", port=27017)
    Db = mongo_client['abcd']
    coll = Db['shopper_journey_sitedata']
except ConnectionFailure:
    print("Connection failed")
date=[]
# Thirdpartyid=[]
input_files = os.listdir(INPUT_FILE_PATH)
# looping through input files
for input_file in input_files:
    x = input_file.split(".")
    date.append(x[0][5:13])
    tp_site_id = x[1]
    # print(tp_site_id)
    cur = coll.find({"third_party_site_id":tp_site_id})
    for doc in cur:
        print(doc)

Теперь я хочу параметризовать метод find () для каждого id, так что на каждой итерации я должен получать st_site_id?

код выше, который я пробовал, но он дает ошибку как «Datas: name error»

1 Ответ

0 голосов
/ 05 августа 2020

Вы можете сделать одну вещь

 coll.find({"third_party_site_id": { $in : 
       [318,2624,2621,2622,102,078]}})

Если Tid является массивом, вы можете заменить 318 в своем запросе на Tid[I]

...