Pymongo: как получить доступ к коллекции MongoDB по имени в виде строки? - PullRequest
1 голос
/ 19 июня 2019

Я хочу записать файлы CSV в mongoDB.

Я хочу назвать коллекцию так же, как имя файла CSV.

Ниже приведен код, который я пробовал.Это записывает название коллекции как "collection".

from pymongo import MongoClient
import pandas as pd
import os

#get all csv files from the directory
dir_path = r'C:\Users\USER\Desktop\project'
output_files = [file for file in os.listdir(dir_path) if file.endswith(".csv")]

client = MongoClient()
db = client.senci

for file in output_files:
     collection = file[-4]
     df = pd.read_csv(file) 
     records_ = df.to_dict(orient = 'records')    
     result = db.collection.insert_many(records_ )

1 Ответ

0 голосов
/ 19 июня 2019

вам нужно использовать db.getCollection () :

db.get_collection(collection).insert_many(records_ )

из документов:

Возвращает коллекцию или объект представления, функционально эквивалентный использованию db.<collectionName>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...