MongoDB基础操作与Python连接实战指南
本文详细介绍MongoDB作为非关系型数据库的核心概念,涵盖集合、文档及JSON数据结构的理解。系统讲解MongoDB Shell中的库与集合管理命令,以及数据的增删改查(CURD)具体用法。同时,提供Python通过pymongo库连接MongoDB服务器的完整代码示例,演示如何执行插入、更新、查询及删除操作,适合初学者快速掌握数据库基础与编程集成方法。
MongoDB是一种基于分布式文件存储架构的非关系型数据库(NoSQL)。
尽管被归类为NoSQL数据库,MongoDB中的文档结构可以支持类似关系型数据的关联特性。
在MongoDB体系中,传统的“表”概念被“集合”所取代,而存储的具体数据单元称为“文档”,其本质即为一条JSON格式的数据记录。
启动MongoDB客户端的命令为mongodb: mongo。
退出当前MongoDB会话的命令为mongodb: exit。
数据库(库)的基本操作如下。
查看当前服务器上所有已存在的数据库列表,命令为show dbs。
切换到指定数据库或创建新数据库,命令格式为use llsdb。
需要注意的是,执行use命令进入某个数据库时,即使该数据库不存在,系统也不会报错。但如果在此数据库中未写入任何数据便直接退出,该数据库将不会被实际创建。因此,创建数据库的标准流程是先use进入,随后写入数据。
查看当前所在数据库名称的命令为db。
删除当前所在数据库的命令为db.dropDatabase() ,执行前必须确保已通过use命令进入目标数据库。
集合(Collection)的相关操作如下。
查看当前数据库中所有已创建的集合,命令为show collections。
手动创建指定名称的集合,命令格式为db.createCollection('llscol' [,options])。
删除指定名称的集合,命令格式为db.llscol.drop()。
数据的基本增删改查(CURD)操作如下。
向集合中插入单条数据,命令示例为db.llscol.insert({name: 'lls', age: 18})。
向集合中插入多条数据的操作如下:
db.llscol.insert([
{name: 'lls1', age: 18},
{name: 'lls2', age: 20}
])
查看集合中的数据,命令为db.llscol.find()。
以格式化后的美观视图查看数据,命令为db.llscol.find().pretty()。
全文档更新数据,即替换整个匹配到的文档,命令示例为db.llscol.update({name: 'haha'}, {xx: 'yy'})。
其中{ name: ‘haha'}作为查询条件,用于匹配需要更新的文档项。
指定字段更新操作,命令示例为$set,{multi: true}: db.llscol.update({name: 'lls1'}, {$set: {name: 'xxx', age: 666}})。
前面的{}部分为匹配条件,默认情况下仅会更新匹配到的第一个文档项。
批量更新多条数据的操作,命令示例为{multi: true}: db.llscol.update({name: 'lls1'}, {$set: {name: 'lls666'}}, {multi: true})。
该操作会在全文档匹配到对应条件的项后,逐一更新每个JSON文档中指定的键值对。
删除数据的操作,命令示例为db.llscol.remove({name: 'lls1'}) 。
此命令会删除所有包含{ name: ‘lls1'}条件的JSON文档。
仅删除匹配到的第一条数据的操作,命令示例为{justOne: true}: db.llscol.remove({name: 'lls1'}, {justOne: true})。
此选项确保只删除第一个匹配到的文档项。
接下来介绍如何使用Python操作MongoDB数据库。
import pymongo
client = pymongo.MongoClient('192.168.0.104', 27017) # 连接并建立client.
db = client['llsdb'] # select database_name db = client.llsdb
stu = db['student'] # select table_name stu = db.student
stu.insert_one({'name': 'lls'})
stu.insert_many([
{'name1': 'lls1', 'age': 18},
{'name2': 'lls2', 'age': 20},
{'name3': 'lls3', 'age': 30}
])
stu.update_one({'name1': 'lls1'}, {'$set': {'age': 20}})
stu.update_many({'name2': 'lls2'}, {'$set': {'age': 90}})
print(stu.find_one({'name2': 'lls2'})) # 查询无args的第一行,或匹配到的第一个行.
content_find = stu.find({}) # 空字典表示查询所有.
print(content_find)
for i in content_find:
print(i)
print(stu.delete_many({'name': 'lls'}).deleted_count)
print(stu.delete_many({}).deleted_count)
"""
方法如下:
insert_one, insert_many, update_one, update_many, delete_one, delete_many, find_one, find.
"""
本文分享了MongoDB基本操作与Python连接并操作MongoDB的基础方法。这些内容虽然基础,却是日常开发工作中必须掌握的知识点。如果您希望深入了解更多MongoDB基本操作的相关内容,请查阅下方的相关链接。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













