75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
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()
|
|
|