Mongodb初学教程

目录

MongoDB 教程及 PyMongo 连接指南

一、MongoDB 基础介绍

二、MongoDB 基本操作

启动 MongoDB 服务

连接到 MongoDB

数据库操作

集合操作

文档操作

三、使用 PyMongo 连接 MongoDB

安装 PyMongo

基本操作示例


MongoDB 教程及 PyMongo 连接指南

一、MongoDB 基础介绍

        MongoDB 是一个开源的文档型 NoSQL 数据库,采用 BSON(类似 JSON)格式存储数据,适合存储非结构化或半结构化数据。

  1. 核心概念
    1.1 数据库(Database):类似关系型数据库的数据库
    1.2 集合(Collection):类似表,但无需固定结构
    1.3 文档(Document):类似行,是键值对的集合(BSON 格式)
    1.4 字段(Field):类似列

二、MongoDB 基本操作

  1. 启动 MongoDB 服务

    # 默认启动
    mongod
    
    # 指定数据存储路径
    mongod --dbpath /path/to/data/directory
    
  2. 连接到 MongoDB

    mongo  # 连接本地默认端口(27017)
    mongo --host <host> --port <port>  # 连接远程服务器
    
  3. 数据库操作

    // 查看所有数据库
    show dbs
    
    // 切换/创建数据库(使用即创建)
    use mydatabase
    
    // 删除当前数据库
    db.dropDatabase()
    
  4. 集合操作

    // 创建集合
    db.createCollection("users")
    
    // 查看所有集合
    show collections
    
    // 删除集合
    db.users.drop()
    
  5. 文档操作

    // 插入文档
    db.users.insertOne({name: "Alice", age: 30, email: "alice@example.com"})
    db.users.insertMany([
      {name: "Bob", age: 25},
      {name: "Charlie", age: 35}
    ])
    
    // 查询文档
    db.users.find()  // 所有文档
    db.users.find({age: {$gt: 28}})  // 年龄大于28的
    db.users.find().limit(5).sort({age: 1})  // 排序并限制结果
    
    // 更新文档
    db.users.updateOne(
      {name: "Alice"},
      {$set: {age: 31}}
    )
    
    // 删除文档
    db.users.deleteOne({name: "Bob"})
    

三、使用 PyMongo 连接 MongoDB

        PyMongo 是 MongoDB 官方的 Python 驱动,用于在 Python 中操作 MongoDB。

  1. 安装 PyMongo

    pip install pymongo
    
  2. 基本操作示例

from pymongo import MongoClient
from pymongo.errors import ConnectionFailure

def connect_to_mongodb(host='localhost', port=27017):
    """连接到MongoDB服务器"""
    try:
        # 创建客户端连接
        client = MongoClient(host, port)
        
        # 验证连接
        client.admin.command('ping')
        print("成功连接到MongoDB服务器")
        return client
    except ConnectionFailure:
        print("无法连接到MongoDB服务器")
        return None

def mongodb_operations(client):
    if not client:
        return
    
    # 1. 获取或创建数据库
    db = client['mydatabase']
    print(f"当前数据库: {db.name}")
    
    # 2. 获取或创建集合
    users_collection = db['users']
    
    # 3. 插入文档
    # 3.1 插入单个文档
    user1 = {
        'name': 'Alice',
        'age': 30,
        'email': 'alice@example.com',
        'hobbies': ['reading', 'hiking']
    }
    result = users_collection.insert_one(user1)
    print(f"插入的文档ID: {result.inserted_id}")
    
    # 3.2 插入多个文档
    users = [
        {'name': 'Bob', 'age': 25, 'email': 'bob@example.com'},
        {'name': 'Charlie', 'age': 35, 'email': 'charlie@example.com'}
    ]
    result = users_collection.insert_many(users)
    print(f"插入的多个文档ID: {result.inserted_ids}")
    
    # 4. 查询文档
    # 4.1 查询所有文档
    print("\n所有用户:")
    for user in users_collection.find():
        print(user)
    
    # 4.2 条件查询(年龄大于28)
    print("\n年龄大于28的用户:")
    for user in users_collection.find({'age': {'$gt': 28}}):
        print(user)
    
    # 4.3 投影查询(只返回name和age字段)
    print("\n只显示姓名和年龄:")
    for user in users_collection.find({}, {'name': 1, 'age': 1, '_id': 0}):
        print(user)
    
    # 5. 更新文档
    # 5.1 更新单个文档
    result = users_collection.update_one(
        {'name': 'Alice'},
        {'$set': {'age': 31}}
    )
    print(f"\n匹配的文档数: {result.matched_count}")
    print(f"修改的文档数: {result.modified_count}")
    
    # 6. 删除文档
    # 6.1 删除单个文档
    result = users_collection.delete_one({'name': 'Bob'})
    print(f"\n删除的文档数: {result.deleted_count}")
    
    # 7. 计数文档
    print(f"\n剩余用户数量: {users_collection.count_documents({})}")

if __name__ == "__main__":
    # 连接到MongoDB
    client = connect_to_mongodb()
    
    # 执行数据库操作
    if client:
        mongodb_operations(client)
        
        # 关闭连接
        client.close()
        print("\n已关闭MongoDB连接")
    

  1. 代码说明
    3.1 连接部分:使用 MongoClient 创建连接,并通过 ping 命令验证连接是否成功
    3.2 数据库操作:包含创建数据库、集合,以及插入、查询、更新、删除文档等操作
    3.3 异常处理:捕获连接失败的异常,确保程序稳定性
    3.4 资源管理:操作完成后关闭数据库连接,释放资源

  2. 运行方法
    4.1 确保 MongoDB 服务已启动
    4.2 将代码保存为 mongo_operations.py
    4.3 运行命令:python mongo_operations.py

  3. 注意事项
    5.1 远程连接时需要替换 host 和 port 为实际的服务器地址和端口
    5.2 如需身份验证,连接时需添加用户名和密码参数
    5.3 生产环境中应避免在代码中硬编码敏感信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值