就是要学社区 QQ群组:646854445
你并非已无懈可击,所以你不能逃避问题,拒绝学习!

059孤荷凌寒自学python尝试使用python来读访问远端MongoDb

|阅读量:65 |发布于2020-08-10 14:39:03


正文内容

Github:

https://github.com/lhghroom/ZeroBasicSelfStudyPython



今天是学习mongoDB数据库的第五天。今天的感觉是,mongoDB数据库我似乎根本就很难掌控呵!


一、首先系统学习了读写mongoDB数据库的方法

以下笔记来自官方文档整理:

(官方文档:https://api.mongodb.com/python/current/index.html )

(一)指定数据库

MongoDB中还分为一个个数据库,我们接下来的一步就是指定要操作哪个数据库,在这里我以test数据库为例进行说明,所以下一步我们需要在程序中指定要使用的数据库。

db = client.test

调用client的test属性即可返回test数据库,当然也可以这样来指定:

db = client['test']

两种方式是等价的。

(二)指定集合

MongoDB的每个数据库又包含了许多集合Collection,也就类似与关系型数据库中的表,下一步我们需要指定要操作的集合,在这里我们指定一个集合名称为students,学生集合。还是和指定数据库类似,指定集合也有两种方式。

collection = db.students

#collection = db['students']


(三)插入数据

接下来我们便可以进行数据插入了,对于students这个Collection,我们新建一条学生数据,以字典的形式表示:

student = {

'id': '20170101',

'name': 'Jordan',

'age': 20,

'gender': 'male'

}


在这里我们指定了学生的学号、姓名、年龄和性别,然后接下来直接调用collection的insert()方法即可插入数据。


result = collection.insert(student)

print(result)


在MongoDB中,每条数据其实都有一个_id属性来唯一标识,如果没有显式指明_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 = {

'id': '20170101',

'name': 'Jordan',

'age': 20,

'gender': 'male'

}


result = collection.insert_one(student)

print(result)

print(result.inserted_id)


运行结果:

<pymongo.results.InsertOneResult object at 0x10d68b558>

5932ab0f15c2606f0c1cf6c5



【就是要学】社区
一个平等,纯粹的社群
本社群旨在为真正愿意不断学习,终身成长的朋友提供一个平等互助互相鼓励的清洁纯粹的学习交流的平台。
加入社群将获得
1、与真正终身学习者为伍
2、在榜样带领下坚持每天学习,终身成长
3、养成记录时间日志,成功日记的习惯


【就是要学】社区QQ群:646854445





【返回首页】