MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
文章目录
- 一、下载MongoDB
- 二、安装MongoDB
- 三、配置MongoDB
- 四、启动MongoDB
- 五、安装Mongoshell
- 六、MongoDB基础操作
今天学习MongoDB的安装,最新版本为6.0.3,但网上存在许多5的安装,差异还是蛮大的,进入shell的方式也不同(后文会提到),此博客记录MongoDB 6.0.3的安装过程,并附加简单的MongoDB指令,以及基于Python编程操作MongoDB数据库。
一、下载MongoDB
官网地址:Download MongoDB Community Server | MongoDB
二、安装MongoDB
双击下载的.msi文件即可安装,这里我选择自定义安装
自定义安装位置:
他会在你的自定义的路径下自动创建相关文件,直接点击next即可
安装
配置电脑环境变量
三、配置MongoDB
在data目录新建一个名为db的文件夹
在log目录创建名为mongod.log的日志文件(这里安装时自动创建了,我就不新建一个了)
在安装目录新建文件mongo.config(可以新建一个txt文件,写好内容,然后重命名文件),内容可复制如下代码,只需要改两个部分:
- dbpath
- logpath
dbpath=F:\APP\MongoDB\data\db #数据库路径logpath=F:\APP\MongoDB\log\mongodb.log #日志输出文件路径logappend=true #错误日志采用追加模式journal=true #启用日志文件,默认启用quiet=true #过滤掉无用的日志信息,若需要调试使用请设置为falseport=27017 #端口号 默认为27017
四、启动MongoDB
cmd打开bin目录,命令行启动MongoDB服务
浏览器访问:http://localhost:27017/
说明启动成功了
最后一步,安装mongodb服务:
mongod --config "F:\APP\MongoDB\mongo.config" --install --serviceName "MongoDB"
打开任务管理器,可以看到MongoDB服务正在运行
配置结束
五、安装Mongoshell
在MongoDB6之前,我们配置完环境变量后,可以直接通过终端输入"mongo"进入Mongoshell,但MongoDB6没有mong.exe和mongdb.exe,终端输入"mongo"会报错:
'mongo' 不是内部或外部命令,也不是可运行的程序或批处理文件。
要想通过命令行启动mongoDB需要自己下载一个Mongoshell,下载及使用相当简单
官网下载:MongoDB Shell Download | MongoDB
直接解压到MongoDB的安装目录下:
然后配置环境变量:
之后就可以基于”mongosh“指令,通过终端进入Mongoshell了
六、MongoDB基础操作
详细操作可以参考菜鸟教程:MongoDB 教程 | 菜鸟教程 (runoob.com)
这里做一个简单操作:
1、创建一个名为 Employee 的数据库 : use Employee
2、向Employee 数据库插入一些数据。db.Employee.insert({"name":"google"})
3、创建一个集合:db.createCollection("myCollection")
4、对集合重命名一下:
5、向集合中插入一些数据:db.myCollection.renameCollection("myColl")
db.myColl.insert({‘username’:‘zhangyu’,‘age’:13,‘salary’:500});
db.myColl.insert({‘username’:‘laohu’,‘age’:20,‘salary’:200});
6、查询集合myColl中的数据:db.myColl.find()
接下来我们用python操作一下MongoDB:
参考教程:Python MongoDB | 菜鸟教程 (runoob.com)
首先安装环境(我用的python版本是 3.7.3):
pip install pymongo
示例代码:
测试数据库是否存在:
import pymongomyclient = pymongo.MongoClient('mongodb://localhost:27017/')dblist = myclient.list_database_names()
# dblist = myclient.database_names()
if "Employee" in dblist:print("数据库已存在!")
查询某集和下的第一条内容
import pymongomyclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["Employee"]
mycol = mydb["myColl"]x = mycol.find_one()print(x)