- 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kun1280437633/article/details/80657644
1. 准备工作
在开始之前,请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。
2. 连接MongoDB
连接MongoDB时,我们需要使用PyMongo库里面的MongoClient
。一般来说,传入MongoDB的IP及端口即可,其中第一个参数为地址host
,第二个参数为端口port
(如果不给它传递参数,默认是27017):
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
这样就可以创建MongoDB的连接对象了。
另外,MongoClient
的第一个参数host
还可以直接传入MongoDB的连接字符串,它以mongodb
开头,例如:
client = MongoClient('mongodb://localhost:27017/')
这也可以达到同样的连接效果。
3. 指定数据库
MongoDB中可以建立多个数据库,接下来我们需要指定操作哪个数据库。这里我们以test数据库为例来说明,下一步需要在程序中指定要使用的数据库:
db = client.test
这里调用client
的test
属性即可返回test数据库。当然,我们也可以这样指定:
db = client['test']
这两种方式是等价的。
4. 指定集合
MongoDB的每个数据库又包含许多集合(collection),它们类似于关系型数据库中的表。
下一步需要指定要操作的集合,这里指定一个集合名称为students。与指定数据库类似,指定集合也有两种方式:
collection = db.students
collection = db['students']
这样我们便声明了一个Collection
对象。
5. 插入数据
接下来,便可以插入数据了。对于students这个集合,新建一条学生数据,这条数据以字典形式表示:
student = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
}
这里指定了学生的学号、姓名、年龄和性别。接下来,直接调用collection
的insert()
方法即可插入数据,代码如下:
result = collection.insert(student)print(result)
在MongoDB中,每条数据其实都有一个_id
属性来唯一标识。如果没有显式指明该属性,MongoDB会自动产生一个ObjectId
类型的_id
属性。insert()
方法会在执行后返回_id
值。
运行结果如下:
5932a68615c2606814c91f3d
当然,我们也可以同时插入多条数据,只需要以列表形式传递即可,示例如下:
student1 = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
}
student2 = {
'id': '20170202',
'name': 'Mike',
'age': 21,
'gender': 'male'
}
result = collection.insert([student1, student2])
print(result)
返回结果是对应的_id
的集合:
[ObjectId('5932a80115c2606a59e8a048'), ObjectId('5932a80115c2606a59e8a049')]
实际上,在PyMongo 3.x版本中,官方已经不推荐使用insert()
方法了。当然,继续使用也没有什么问题。官方推荐使用insert_one()
和insert_many()
方法来分别插入单条记录和多条记录,示例如下:
student = {