MongoDB数据库操作实战

MongoDB的基本认识

  • 简介与特点:MongoDB是一个基于分布式文件存储的开源NoSQL数据库,由C++编写。它旨在为WEB应用提供可扩展、高性能的数据存储解决方案,介于关系数据库和非关系数据库之间,功能丰富且最像关系数据库的非关系数据库。MongoDB使用BSON(Binary JSON)格式存储数据,支持复杂的数据结构,如数组和嵌套对象。
  • 业务应用场景:MongoDB适用于大数据量、高并发写入、对事务性要求不高的应用场景,例如社交、游戏、物流、物联网和视频直播等领域,能够实现高效的数据存储和访问。
  • 选择MongoDB的条件:当应用不需要事务及复杂join支持、需求不断变化、需要快速迭代开发、面临高读写QPS需求或TB甚至PB级别数据存储时,选择MongoDB更为合适。

MongoDB是一个基于分布式文件存储的开源NoSQL数据库,由C++编写。它提供了高性能、高可用性、易扩展性的数据库解决方案。在本文中,我们将介绍一些MongoDB数据库的基本操作,并通过实际代码示例来加深理解。

MongoDB是一种灵活、可扩展的NoSQL数据库,它使用类似JSON的文档格式来存储数据,具有动态模式的特点

MongoDB的这些特性使其成为处理大数据、实时应用程序和复杂查询的理想选择。下面将介绍MongoDB的一些基础操作方法:

  1. 查看所有数据库
    • 使用show dbs命令可以查看当前MongoDB实例中所有的数据库列表。这个命令可以在任何数据库上执行。
    • 示例命令:show databases

 admin:"root" 数据库,将一个用户添加到这个库中,这个用户自动继承所有数据库的权限.   另外,一些特定的服务器命令也能从这个库中运行,比如列出所有数据库或关闭数据库.
local:这个数据库的数据永远只有一份,不会被主从复制.
config:当 Mongo 用于分片设置时,config 数据库再内部使用,用于保存分片的相关信息.

  1. 创建数据库
    • 使用use命令可以创建一个新的数据库。如果指定的数据库不存在,MongoDB会在第一次使用该数据库时创建它。
    • 示例命令:use demo

  1. 查看当前正在使用的数据库
    • 可以使用db命令或者db.getName()方法来查看当前正在使用的数据库。
    • 示例命令:db

统计数据库信息

    • 使用db.stats()方法可以查看当前数据库的详细信息,例如大小、索引数等。注意要在特定数据库下执行此命令。
    • 示例命令:db.stats()
  1. 删除当前使用的数据库
    • 使用db.dropDatabase()命令可以删除当前正在使用的数据库。这会永久删除数据库中的所有数据,需谨慎操作。
    • 示例命令:db.dropDatabase()
  2. 查看集合
    • 使用db.getCollectionNames()可以查看当前数据库下的所有集合名称。
    • 示例命令:db.getCollectionNames()
  3. 查看当前db版本
    • 通过执行db.version()命令,可以查看当前运行的MongoDB版本信息。
    • 示例命令:db.version()

综上所述,MongoDB提供了灵活的数据库操作方法,帮助用户高效地管理数据。这些基础操作为进一步的数据操纵和高级应用打下了坚实的基础。

  1. 安装MongoDB

首先,我们需要安装MongoDB数据库。在Windows系统上,可以访问MongoDB官网下载对应的安装包。安装完成后,我们可以在命令行中输入mongod启动数据库服务。

  1. 连接MongoDB

接下来,我们需要使用Python的pymongo库来连接MongoDB数据库。首先安装pymongo库:

pip install pymongo
然后,我们可以使用以下代码连接到本地的MongoDB数据库:
from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['test']
collection = db['student']
  1. 插入文档数据

在MongoDB中,数据以BSON(Binary JSON)格式存储。我们可以使用insert_one()方法插入单个文档,或使用insert_many()方法插入多个文档。以下是插入学生信息的示例:

data_list = [
    {"name": "张壍", "age": 18, "sex": "男", "major": "大数据技术"},
    {"name": "李四", "age": 19, "sex": "男", "major": "大数据技术"},
    {"name": "王五", "age": 18, "sex": "女", "major": "人工智能"}
]

result = collection.insert_many(data_list)
print("插入成功,文档ID:", result.inserted_ids)
  1. 查询文档数据

我们可以使用find()方法查询文档数据。例如,查询所有学生信息:

for item in collection.find():
    print(item)

我们还可以使用条件查询,例如查询专业为大数据技术的学生:

for item in collection.find({"major": "大数据技术"}):
    print(item)
  1. 更新文档数据

我们可以使用update_one()方法更新单个文档,或使用update_many()方法更新多个文档。例如,将专业为人工智能的学生的专业修改为大数据技术:

collection.update_many({"major": "人工智能"}, {"$set": {"major": "大数据技术"}})
  1. 删除文档数据

我们可以使用delete_one()方法删除单个文档,或使用delete_many()方法删除多个文档。例如,删除姓名为李四的学生:

collection.delete_one({"name": "李四"})
  1. 聚合操作

MongoDB支持丰富的聚合操作,如计数、分组、排序等。例如,统计各专业的学生数量:

pipeline = [
    {"$group": {"_id": "$major", "count": {"$sum": 1}}},
    {"$sort": {"count": -1}}
]

result = collection.aggregate(pipeline)
for item in result:
    print(item)
  1. 索引操作

为了提高查询性能,我们可以为集合创建索引。例如,为姓名字段创建唯一索引:

collection.create_index("name", unique=True)
 

总结

本文介绍了MongoDB数据库的基本操作,包括连接数据库、插入、查询、更新、删除文档数据,以及聚合和索引操作。通过实际代码示例,我们了解了如何使用Python的pymongo库进行MongoDB数据库的操作。在实际项目中,我们可以根据需求灵活运用这些操作,实现对数据的高效管理。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值