mongodb的安装使用和pymongo基本使用教程
MongoDB是一个基于分布式文件存储的数据库,该数据库的存储结构类似于JSON,由于其灵活的数据模型以及高性能、高可用性的特点,成为了当今最流行的NoSQL数据库之一。同时,pymongo是MongoDB的一个Python驱动,也是Python客户端中使用最广泛的MongoDB库。本文将详细介绍MongoDB的安装使用以及pymongo的基本使用方法。
一、MongoDB的安装使用
1.下载安装MongoDB
MongoDB官网提供了各个操作系统的安装包下载,下载网址为:https://www.mongodb.com/download-center/community 选择合适的版本,下载后直接安装即可。安装完成后需要配置环境变量,将MongoDB的bin目录添加到系统Path中,这样才能在命令行中运行MongoDB相关命令。
2.启动MongoDB服务
在Windows系统中,首先需要创建一个数据存储目录,例如在C盘下创建一个名为data的文件夹,用于存储MongoDB的数据文件。然后通过管理员运行命令提示符,并输入以下命令启动MongoDB服务:
mongod --dbpath=C:\data
这里的--dbpath参数可以指定MongoDB的数据存储路径,末尾的路径为我们在第1步中创建的目录。若要指定MongoDB的日志文件存储位置,还可以添加--logpath参数,如:
mongod --dbpath=C:\data --logpath=C:\data\mongod.log
运行命令后,MongoDB服务就会自动启动。此时可以通过mongod的默认端口(27017)连接到MongoDB服务。
3.连接MongoDB服务
连接MongoDB服务需要使用MongoDB驱动,这里我们推荐使用pymongo。在Python中,导入pymongo库即可连接MongoDB服务:
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test
其中,host参数为MongoDB服务所在的IP地址,port参数为MongoDB服务所在的端口号,这里默认为27017。test为我们连接的数据库名称,若该数据库不存在则会自动创建。
4.操作MongoDB数据库
MongoDB的数据库中包含多个集合(类似于关系数据库中的表),每个集合中又包含多个文档(类似于关系数据库中的行),文档是MongoDB中的最小数据单位,也是JSON格式的数据。通过pymongo库,可以对MongoDB数据库进行多种操作:
增加数据:
db.students.insert_one({'name': 'Tom', 'age': 18, 'gender': 'male'})
该语句向集合students中插入一条数据,该数据包含name、age、gender三个字段。
查询数据:
result = db.students.find_one({'name': 'Tom'})
print(result)
该语句查询集合students中name为Tom的一条数据,并将结果打印出来。
更新数据:
db.students.update_one({'name': 'Tom'}, {'$set': {'age': 19}})
该语句更新集合students中name为Tom的一条数据,将其age字段更新为19。
删除数据:
db.students.delete_one({'name': 'Tom'})
该语句删除集合students中name为Tom的一条数据。
二、pymongo基本使用
1.连接MongoDB服务
在第一部分中已经介绍了如何连接MongoDB服务。
2.选择数据库和集合
在pymongo中,使用下面语句来指定要使用的数据库和集合:
db = client.test
collection = db.students
其中,test为数据库名称,students为集合名称。
3.增加数据
使用insert_one方法向集合中增加一条数据:
result = collection.insert_one({'name': 'Bob', 'age': 20, 'gender': 'male'})
print(result.inserted_id)
该语句向集合students中插入一条数据,返回值为该数据的_id值。
批量插入数据,使用insert_many方法:
data = [
{'name': 'Jack', 'age': 19, 'gender': 'male'},
{'name': 'Mary', 'age': 18, 'gender': 'female'}
]
result = collection.insert_many(data)
print(result.inserted_ids)
该语句向集合students中插入两条数据,返回值为这两条数据的_id值。
4.查询数据
查询集合中所有数据:
results = collection.find()
for result in results:
print(result)
该语句查询集合students中的所有数据,并且逐条打印出来。
查询指定条件的数据:
result = collection.find_one({'name': 'Bob'})
print(result)
该语句查询集合students中name为Bob的一条数据,并将结果打印出来。
根据指定条件查询多条数据:
results = collection.find({'age': {'$gt': 19}})
for result in results:
print(result)
该语句查询集合students中age大于19的所有数据,并且逐条打印出来。其中$gt为MongoDB中的比较符号,表示大于。
5.更新数据
更新一条数据,使用update_one方法:
result = collection.update_one({'name': 'Bob'}, {'$set': {'age': 21}})
print(result.matched_count, result.modified_count)
该语句将集合students中name为Bob的一条数据中的age字段更新成21,matched_count表示匹配到的数据条数,modified_count表示实际更新的数据条数。
更新多条数据,使用update_many方法:
result = collection.update_many({'age': {'$lt': 20}}, {'$inc': {'age': 1}})
print(result.matched_count, result.modified_count)
该语句更新集合students中age小于20的所有数据,将其age字段递增1。
6.删除数据
删除一条数据,使用delete_one方法:
result = collection.delete_one({'name': 'Bob'})
print(result.deleted_count)
该语句删除集合students中name为Bob的一条数据,删除的数据条数为1。
删除多条数据,使用delete_many方法:
result = collection.delete_many({'age': {'$lt': 20}})
print(result.deleted_count)
该语句删除集合students中age小于20的所有数据,删除的数据条数为N。
通过本文的介绍,相信读者已经初步掌握了MongoDB的安装使用以及pymongo的基本用法,能够在Python中使用MongoDB进行数据存取操作。当然,MongoDB的用法远不止如此,希望大家在实际使用中多加尝试,探索出更加丰富的使用方式。