mongodb的安装使用和pymongo基本使用教程

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的用法远不止如此,希望大家在实际使用中多加尝试,探索出更加丰富的使用方式。

数据库标签