import json
from pymongo import MongoClient

import os

# 指定目录路径
directory = './'

# 连接到 MongoDB
client = MongoClient('mongodb://root:lostecho@192.168.31.3:27017/')
# 选择数据库
db = client['songyi']
# 选择集合
collection = db['course_content']

# 遍历目录下的所有文件
for filename in os.listdir(directory):
    if filename.endswith('.json'):
        file_path = os.path.join(directory, filename)
        course_id = filename.split('.')[0]
        print(course_id)
        try:
            with open(file_path, 'r', encoding='utf-8-sig') as file:
                # content = file.read()
                # print(f"文件 {filename} 的内容如下：")
                # print(content)
                data = json.load(file)
                # 为每个文档添加指定的 _id
                # print(data["data"][0]["course_id"])
                if isinstance(data, list):
                    for i, document in enumerate(data):
                        document["_id"] = course_id
                else:
                    data["_id"] = course_id
                if isinstance(data, list):
                    collection.insert_many(data)
                else:
                    collection.insert_one(data)
        except FileNotFoundError:
            print(f"错误：文件 {file_path} 未找到。")
        except Exception as e:
            print(f"错误：处理文件 {file_path} 时出现未知错误：{e}")


id_to_query = str(1)

try:

    # 根据 _id 查询单个文档
    document = collection.find_one({"_id": id_to_query})

    if document:
        # 移除 _id 字段中的 ObjectId 对象，因为它不能直接被 JSON 序列化
        document.pop("_id", None)

        # 将查询结果转换为 JSON 字符串
        json_str = json.dumps(document)

        # 使用 json.loads 加载 JSON 字符串
        loaded_data = json.loads(json_str)

        print("加载后的数据：")
        print(loaded_data)
    else:
        print(f"未找到 _id 为 {id_to_query} 的文档。")
except Exception as e:
    print(f"错误：查询或处理数据时出现未知错误：{e}")

# 关闭连接
client.close()