使用Python API 操作MongoDB

"""
MongoDB是一个流行的NoSQL数据库,采用文档数据库模型,提供了丰富的功能和灵活的数据模型。
Python中的PyMongo驱动程序是与MongoDB交互的重要工具,提供了方便的API和功能。
"""

from pymongo import MongoClient


# 创建数据库
def create_database(client, database_name):
    db_list = client.list_database_names()  # 获取当前存在的数据库列表
    print('当前数据库已存在的集合:', db_list)
    mydb = client[database_name]  # 创建数据库
    if database_name in db_list:
        print("该数据库已存在!")
    else:
        print('创建数据库成功!')
        print('新建数据库名:', database_name)


# 创建集合
def create_collections(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    coll_list = mydb.list_collection_names()  # 获取当前存在的集合
    if collection_name in coll_list:
        print("该集合已存在!")
    else:
        print('创建集合成功!')
        print('新建集合名:', collection_name)


# 插入数据
def insert_data(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    data1 = {'it': "小学",
             'name': '语文',
             'price': 20,
             'user': 'sxh',
             'time': '2024-05-28'
             }
    data2 = {'it': "初中",
             'name': '语文',
             'price': 30,
             'user': 'sxh',
             'time': '2024-05-28'
             }
    data3 = {'it': "高中",
             'name': '语文',
             'price': 40,
             'user': 'sxh',
             'time': '2024-05-28'
             }
    data4 = {'it': "大学",
             'name': '高等数学',
             'price': 50,
             'user': 'sxh',
             'time': '2024-05-28'
             }
    mycoll.insert_many([data1, data2, data3, data4])  # 插入数据集data1,data2,data3,data4
    print('数据插入成功!')


# 查询集合中的所有数据
def find_data(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    print('当前集合中所有数据:')
    for data in mycoll.find():  # 遍历集合
        print(data)
    print('数据查询成功!')


# 修改集合中的一个数据
def updata_one(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    old_data = {'name': '高等数学'}  # 指定要修改的数据集
    new_data = {'$set': {'name': 'NoSQL数据库'}}  # 修改的新数据集的信息
    result = mycoll.update_one(old_data, new_data)  # 把旧的数据集更新为新的数据集
    print('修改数据成功!修改后数据:')
    for data in mycoll.find():  # 遍历集合
        print(data)
    print('数据修改成功!')


# 修改集合中的多个数据
def updata_many(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    old_data = {'name': '语文'}  # 指定要修改的数据集
    new_data = {'$set': {'name': '数学'}}  # 修改的新数据集的信息
    result = mycoll.update_many(old_data, new_data)  # 把旧的数据集更新为新的数据集
    print('修改数据成功!修改后数据:')
    for data in mycoll.find():  # 遍历集合
        print(data)
    print('修改成功!')


# 删除集合中的一个数据
def delete_one(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    result = mycoll.delete_one({'it': '初中'})  # 删除集合中第一个匹配项{'it': '初中'}
    print('成功删除集合中的一个数据!删除后数据:')
    for data in mycoll.find():  # 遍历集合
        print(data)


# 删除集合中的多个数据
def delete_many(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    result = mycoll.delete_many({'name': '数学'})  # 删除集合中多个匹配项{'name': '数学'}
    print('成功删除集合中的多个数据!删除后数据:')
    for data in mycoll.find():  # 遍历集合
        print(data)



# 删除指定集合
def drop_collections(client, database_name, collection_name):
    mydb = client.get_database(database_name)  # 指定要操作的数据库
    mycoll = mydb.get_collection(collection_name)  # 指定要操作的集合
    mycoll.drop()   # 删除集合
    print('删除集合成功!')



if __name__ == "__main__":
    mgclient = MongoClient("mongodb://localhost:27017/")  # 连接到MongoDB数据库
    create_database(mgclient, 'sxh14')  # 创建数据库
    create_collections(mgclient, 'sxh14', 'orders')  # 创建集合
    insert_data(mgclient, 'sxh14', 'orders')  # 插入数据
    find_data(mgclient, 'sxh14', 'orders')  # 查询数据
    updata_one(mgclient, 'sxh14', 'orders')  # 更新集合中的一个数据
    updata_many(mgclient, 'sxh14', 'orders')  # 更新集合中的多个数据
    delete_one(mgclient, 'sxh14', 'orders')  # 删除集合中的一个数据
    delete_many(mgclient, 'sxh14', 'orders')  # 删除集合中的多个数据
    drop_collections(mgclient, 'sxh14', 'orders')  # 删除集合

程序运行输出结果:

【补充1】PyCharm Community Edition 2023.3.3编程界面截图:

【补充2】数据插入成功后,MongoDB数据库Compass可视化界面显示截图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值