import argparse from datetime import datetime import json import glob from pymongo import MongoClient def connect_to_mongo(uri, db_name): """Подключение к MongoDB.""" client = MongoClient(uri) db = client[db_name] return db def load_all_json_from_folder(folder_path): """Загружает все JSON-файлы из указанной папки.""" all_data = [] for file_path in glob.glob(f"{folder_path}/*.json"): try: with open(file_path, "r", encoding="utf-8") as f: data = json.load(f) all_data.append(data) except Exception as e: print(f"Ошибка при чтении файла {file_path}: {e}") return all_data def fetch_all_documents(mongo_uri, db_name, collection_name): """Выводит все элементы из указанной коллекции MongoDB.""" try: client = MongoClient(mongo_uri) db = client[db_name] collection = db[collection_name] documents = collection.find() print(f"Содержимое коллекции '{collection_name}':") for doc in documents: print(doc) except Exception as e: print(f"Ошибка при получении данных: {e}") finally: client.close() def insert_data(db, collection_name, data): """Вставляет данные в указанную коллекцию MongoDB.""" collection = db[collection_name] for i in data: collection.insert_one(i) print(f"Данные '{i}'") print(f"Данные успешно вставлены в коллекцию '{collection_name}'.") def main(): parser = argparse.ArgumentParser(description="Insert JSON data into MongoDB with certificate") parser.add_argument("--mongo-uri",default="mongodb://root:itOj4CE2miKR@mongodb:27017" ,required=True, help="MongoDB URI") parser.add_argument("--db-name",default="MongoDBSub&Ser" ,required=True, help="MongoDB database name") parser.add_argument("--collection",default="servers", required=True, help="Collection name") parser.add_argument("--json-path", required=True, help="Path to the JSON file with data") args = parser.parse_args() db = connect_to_mongo(args.mongo_uri, args.db_name) data = load_all_json_from_folder(args.json_path) insert_data(db, args.collection, data) fetch_all_documents(args.mongo_uri, args.db_name,args.collection) if __name__ == "__main__": main()