python连接mongodb操作数据示例(mongodb数据库配置类)


下面是一个Python连接MongoDB并操作数据的示例,包含了一个MongoDB数据库配置类。这里我们使用了`pymongo`库,它是Python操作MongoDB的官方推荐库。

首先,确保你已经安装了`pymongo`库。如果没有,可以通过pip安装:


pip install pymongo

然后,你可以创建一个数据库配置类,以及使用该类来连接数据库并执行一些基本操作:


from pymongo import MongoClient

class MongoDBConfig:
    """MongoDB数据库配置类"""

    def __init__(self, host='localhost', port=27017, db_name='testdb', username=None, password=None):
        """
        初始化MongoDB连接配置

        Args:
            host (str): MongoDB服务器地址,默认为'localhost'
            port (int): MongoDB服务器端口,默认为27017
            db_name (str): 要连接的数据库名称,默认为'testdb'
            username (str, optional): 数据库用户名,默认为None
            password (str, optional): 数据库密码,默认为None
        """
        self.host = host
        self.port = port
        self.db_name = db_name
        self.username = username
        self.password = password

    def get_client(self):
        """
        获取MongoDB客户端连接

        Returns:
            MongoClient: MongoDB客户端实例
        """
        # 构造连接字符串
        connection_string = f"mongodb://{self.host}:{self.port}/"
        if self.username and self.password:
            connection_string += f"{self.db_name}?authSource=admin&authMechanism=SCRAM-SHA-256"
            return MongoClient(connection_string, username=self.username, password=self.password)
        else:
            return MongoClient(connection_string)

    def get_db(self):
        """
        获取数据库实例

        Returns:
            Database: MongoDB数据库实例
        """
        client = self.get_client()
        return client[self.db_name]

# 使用示例
if __name__ == "__main__":
    # 实例化配置类
    config = MongoDBConfig(host='your_mongodb_host', port=27017, db_name='your_db_name', username='your_username', password='your_password')

    # 获取数据库实例
    db = config.get_db()

    # 执行一些数据库操作,例如插入数据
    collection = db['your_collection_name']
    post = {"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"]}
    post_id = collection.insert_one(post).inserted_id
    print(f"Post ID: {post_id}")

    # 查询数据
    for post in collection.find():
        print(post)

请注意,你需要将`your_mongodb_host`、`your_db_name`、`your_username`、`your_password`和`your_collection_name`替换为你自己的MongoDB数据库配置信息。

这个示例展示了如何定义一个MongoDB配置类,并通过该类连接到MongoDB数据库,然后执行插入和查询操作。你可以根据需要调整或扩展这个类,以支持更复杂的数据库操作。