【Python】MongoDB数据库安装和Pymongo操作学习

您所在的位置:网站首页 python调用数据库进行 【Python】MongoDB数据库安装和Pymongo操作学习

【Python】MongoDB数据库安装和Pymongo操作学习

2023-03-24 03:08| 来源: 网络整理| 查看: 265

MongoDB简介

Mongo是一种非关系型数据库,相较于典型的关系型数据库(如Oracle,Mysql),访问速度更快,更适合于数据变化快的场景。

MongoDB数据库安装

这里使用的是MongoDB 4.4 版本: 下载链接:https://pan.baidu.com/s/14-acXNSbxS5vxAd3oPTK0g?pwd=8888

安装步骤图示:

在这里插入图片描述 在这里插入图片描述

安装好之后,会自动添加windows服务,可以在任务管理器的服务栏看到。

在这里插入图片描述 打开浏览器,访问http://localhost:27017/,显示下图内容,说明MongoDB服务正常运行。

在这里插入图片描述

Pymongo常规操作 Pymongo安装

Pymongo是一个python库,提供了方便的与MongoDB交互的API。 Pymongo安装:

pip install pymongo 创建数据库 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") #新建数据库 mydb = myclient["mydatabase"] 查询所有数据库 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 查询数据库 dblist = myclient.list_database_names() # 获取数据库名 print(dblist)

输出:

[‘admin’, ‘config’, ‘local’]

这里输出了三个原始默认的数据库,并没有刚刚新建的数据库mydatabase。 这是因为在 MongoDB 中,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。

创建集合/插入文档

下面就创建一个集合并插入一条文档:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 插入文档 mydict = {"name": "zstar", "height": "185cm"} mycol.insert_one(mydict)

运行之后,使用Navicat查看数据库,可以看到数据库和集合被成功创建,并自动为文档添加了唯一性标识。

在这里插入图片描述

插入多条文档

使用insert_many可以插入多条文档:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 插入多条文档 mylist = [ {"name": "zstar", "height": "185cm"}, {"name": "zstar", "height": "186cm"}, {"name": "zstar", "height": "188cm"} ] mycol.insert_many(mylist) 查询一条文档 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 查询一条文档 x = mycol.find_one() print(x) 查询集合中所有文档

mycol.find()会返回一个pymongo.cursor.Cursor对象,通过循环可以读取:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 查询所有文档 for x in mycol.find(): print(x) 查询指定字段

将需要的字段设为1,不需要的字段设为0,第一个{}指代查询所有内容。

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 查询指定字段 for x in mycol.find({}, {"_id": 0, "name": 1, "height": 1}): print(x) 查询符合条件的数据

查询所有"height": “185cm”`的数据:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 条件查询 for x in mycol.find({"height": "185cm"}): print(x) 比较条件查询

除了完全相等之外,还可以使用条件操作符来实现更多操作,例如: 查询身高大于185cm的人:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 条件查询 for x in mycol.find({"height": {"$gt": "185cm"}}): print(x)

常用条件操作符有:

(>) 大于 - $gt(=) 大于等于 - $gte("$set": {"name": "starz"}} mycol.update_one(myquery, newvalues) # 输出修改后的集合 for x in mycol.find(): print(x) 修改多条文档

上面代码不变,将update_one替换成update_many,即可实现修改所有符合条件的文档。

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 修改多条文档 myquery = {"name": "zstar"} # 将所有的zstar修改为starz newvalues = {"$set": {"name": "starz"}} mycol.update_many(myquery, newvalues) # 输出修改后的集合 for x in mycol.find(): print(x) 文档排序

使用sort可以对查询的文档进行排序,默认是升序,设置参数-1为降序。

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 排序 mydoc = mycol.find().sort("height") # 升序 mydoc = mycol.find().sort("height", -1) # 降序 for x in mydoc: print(x) 删除单条文档

delete_one用来删除单个符合条件的文档。

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 删除一条文档 myquery = {"height": "188cm"} mycol.delete_one(myquery) # 删除后输出 for x in mycol.find(): print(x) 删除多条文档

和update类似,用delete_many替代delete_one即可:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 删除一条文档 myquery = {"height": "185cm"} mycol.delete_many(myquery) # 删除后输出 for x in mycol.find(): print(x) 删除所有文档

将匹配条件设为空,则会删除所有文档:

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 删除一条文档 myquery = {} mycol.delete_many(myquery) # 删除后输出 for x in mycol.find(): print(x) 删除集合

文档删完了,集合也删了吧。

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 新建数据库 mydb = myclient["mydatabase"] # 创建集合 mycol = mydb["myset"] # 删除集合 mycol.drop() 总结

相比于之前经常使用的Mysql,MongoDB的操作显得更简单和轻量化,更适合对于安全性低,使用频繁的场景。

参考

[1] Mongodb介绍和安装(含安装包) https://blog.csdn.net/m0_45877477/article/details/125506862 [2] Python使用pymongo连接MongoDB数据库并进行操作 https://blog.csdn.net/qq_45268814/article/details/125937255



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3