1 安装MongoDB
mongodb的windows下载地址
MongoDB 提供了预编译二进制包。
(1)下载 .msi 文件,下载后双击该文件,按操作提示安装即可。
安装过程中,你可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。
D:\MongoDB\Server\5.0\。
配置环境变量D:\MongoDB\Server\5.0\bin。
(2)下一步安装 “install mongoDB compass” 不勾选(当然你也可以选择安装它,可能需要更久的安装时间),MongoDB Compass 是一个图形界面管理工具,我们可以在后面自己到官网下载安装。
(3)创建目录
MongoDB 将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下 (如: C:\ 或者 D:\ 等 )。
D:\data\db。
(4)命令行下运行 MongoDB 服务器
CMD>mongod --dbpath D:\data\db
(5)连接MongoDB
CMD>mongo
2 配置 MongoDB 服务
3 python操作mongodb
请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。
3.1 连接信息
import pymongo
# (1)连接mongodb
#client = pymongo.MongoClient(host='localhost',port=27017)
client = pymongo.MongoClient('mongodb://localhost:27017/')
# (2)指定数据库
#MongoDB中可以建立多个数据库
#db = client.test # 方式一
db = client['test']
# (3)指定集合
# 每个数据库又包含许多集合collection,类似于关系型数据库中的表。
#collection = db.students # 方式一
collection = db['students']
print(collection)
官方推荐使用insert_one()和insert_many()方法来分别插入单条记录和多条记录。
3.2 插入一条
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合
# 插入一条
student = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
}
result = collection.insert_one(student)
print(result)
print(result.inserted_id)
输出如下
<pymongo.results.InsertOneResult object at 0x000001EE321E7348>
6194bd1c4688ef8efc735c66
3.3 插入多条
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合
# 插入多条
student1 = {
'id': '20170102',
'name': 'lucy',
'age': 20,
'gender': 'male'
}
student2 = {
'id': '20170203',
'name': 'Mike',
'age': 21,
'gender': 'male'
}
result = collection.insert_many([student1, student2])
print(result)
print(result.inserted_ids)
输出如下
<pymongo.results.InsertManyResult object at 0x000001F5161B0448>
[ObjectId(‘6194bd84c61333642af39309’), ObjectId(‘6194bd84c61333642af3930a’)]
3.4 查询一条
插入数据后,我们可以利用find_one()或find()方法进行查询,其中find_one()查询得到的是单个结果,find()则返回一个生成器对象。
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合
result = collection.find_one({'name': 'Mike'})
print(type(result))
print(result)
输出如下
<class ‘dict’>
{’_id’: ObjectId(‘6194bd84c61333642af3930a’), ‘id’: ‘20170203’, ‘name’: ‘Mike’, ‘age’: 21, ‘gender’: ‘male’}
可以发现,它多了_id属性,这就是MongoDB在插入过程中自动添加的。
3.4 查询多条
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合
results = collection.find({'age': 20})
print(type(results))
print(results)
for result in results:
print(result)
输出如下
<class ‘pymongo.cursor.Cursor’>
<pymongo.cursor.Cursor object at 0x000001937FBC6860>
{’_id’: ObjectId(‘6194bd1c4688ef8efc735c66’), ‘id’: ‘20170101’, ‘name’: ‘Jordan’, ‘age’: 20, ‘gender’: ‘male’}
{’_id’: ObjectId(‘6194bd84c61333642af39309’), ‘id’: ‘20170102’, ‘name’: ‘lucy’, ‘age’: 20, ‘gender’: ‘male’}
返回结果是Cursor类型,它相当于一个生成器,我们需要遍历取到所有的结果,其中每个结果都是字典类型。