文章目录
1.什么是mongodb?
MongoDB是一个基于分布式文件存储的数据库,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
2.Robo3T的介绍
robo 3t 是一款MongoDB的辅助插件,它是Robomongo的升级版本,在新版中,我们可以更加方便的查找数据库对象、利用其中的数据生成器,也可以将Excel文件的数据导入数据库中保存,对于制作数据文件来说是非常方便的
3.mongodb和Robo3T的下载官网
mongodb下载官网:https://www.mongodb.com/download-center
Robo3T下载官网:https://robomongo.org/download
4.安装pymongo模块
5.python与mongodb数据库的连接
import pymongo
client=pymongo.MongoClient()
person=client.person
student=person.student
print('连接数据库成功!')
print(student.find())
连接数据库成功!
<pymongo.cursor.Cursor object at 0x0000021962328A58>
6.python操作mongodb数据库
说明:这些数据是在Robo3T中插入好的,我们要做的就是在python中操作数据(包括查询,更新,删除等)
(1)查询mongodb中的所有数据
result=student.find()
for i in result:
print(i)
{’_id’: ObjectId(‘5ebe408183e18596ee6671e7’), ‘name’: ‘曹操’, ‘age’: ‘28’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe40e383e18596ee6671e8’), ‘name’: ‘张飞’, ‘age’: ‘24’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe411883e18596ee6671e9’), ‘name’: ‘张飞’, ‘age’: ‘24’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe411883e18596ee6671ea’), ‘name’: ‘关羽’, ‘age’: ‘26’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe485983e18596ee6671eb’), ‘name’: ‘刘备’, ‘age’: ‘30’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe513300ac2d73a7cbea3b’), ‘name’: ‘张三’, ‘age’: ‘40’, ‘country’: ‘魏国’}
(2)将数据按年龄升序和降序排列
#升序
result=student.find().sort("age",1)
for i in result:
print(i)
#降序
result=student.find().sort("age",-1)
for i in result:
print(i)
{’_id’: ObjectId(‘5ebe513300ac2d73a7cbea3b’), ‘name’: ‘张三’, ‘age’: ‘40’, ‘country’: ‘魏国’}
{’_id’: ObjectId(‘5ebe485983e18596ee6671eb’), ‘name’: ‘刘备’, ‘age’: ‘30’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe408183e18596ee6671e7’), ‘name’: ‘曹操’, ‘age’: ‘28’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe411883e18596ee6671ea’), ‘name’: ‘关羽’, ‘age’: ‘26’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe40e383e18596ee6671e8’), ‘name’: ‘张飞’, ‘age’: ‘24’, ‘country’: ‘蜀国’}
{’_id’: ObjectId(‘5ebe411883e18596ee6671e9’), ‘name’: ‘张飞’, ‘age’: ‘24’, ‘country’: ‘蜀国’}
(3)增加数据
student.insert({"name":"王二","age":"35","country":"吴国"})
result=student.find()
for i in result:
print(i)
(4)删除数据
student.remove({"name":"张飞"})
result=student.find()
for i in result:
print(i)
(5)查找数据个数
result=student.find().count()
print(result)
(6)更新数据
data={"name":"王二"}
result=student.find_one(data)
result["country"]="齐国"
student.update(data,{"$set":result})
print(result)
{’_id’: ObjectId(‘5ebe5b16bdf4d2ae595a8e49’), ‘name’: ‘王二’, ‘age’: ‘35’, ‘country’: ‘齐国’}