MongoDB的使用
MongoDB 是一种非关系数据库,是一种 NoSQL 型数据库,用于应对大数据和分布式系统的数据库,具有高扩展性和分布式,没有复杂的关系模型。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。将数据存储为一个文档,数据结构由键值对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
MongoDB 简介和安装
MongoDB 是一种NoSQL型数据库,使用C++编写,基于分布式文件存储的开源数据库系统。
官方下载地址。
在 Windows 系统环境下,可以下载安装包或者压缩包,解压后在 bin
目录下找到可执行的文件,其中 mongod.exe
是数据库服务,使用时需要打开,mongo.exe
是MongoDB数据库的控制台,命令终端。另外,该目录下还提供了数据库的状态查看和管理小程序。
MongoDB 服务器的运行
*有两种方式运行:命令行* 和 配置服务 **
第一种方法是从终端运行 MongoDB 服务器,需要指定数据库的存储路径:
1 | mongod.exe --dbpath mydbpath\db |
第二种方法是编写Windows下的服务程序,使MongoDB服务器以服务的形式存在,创建一个 mongodd.cfg
文件,在其中指定日志路径和数据库路径:
1 | systemLog: |
然后以管理员的身份运行:mongod.exe --config "path\mongod.cfg" --install
安装服务,这时可以在Windows服务中看到一个名为MongoDB的服务,可以手动启动或者使用命令启动和关闭:
1 | net start MongoDB # 启动服务 |
连接 MongoDB 服务器
使用 mongo
命令进入 MongoDB 后台管理的shell,默认连接到其中的test数据库,可以使用一些简单的JavaScript语句。
当需要进行身份认证的时候,要切换到认证数据库上,然后才能认证:
1 | use admin |
数据库操作
创建和删除数据库
查看所有包含数据的数据库: show dbs
查看当前使用的数据库: db
切换和创建数据库 use DB_NAME
不存在会创建
需要删除某一个数据库,可以先切换到某一个数据库下,然后执行 db.dropDatabase()
创建和删除集合
创建的基本语法:
1 | db.createCollection(name, options) |
name 为名称,options为选项用来指定集合的大小和文档的最大数量。
删除集合 db.collection.drop()
,删除前使用 show collections
或者 show tables
查看集合,然后调用具体的集合删除。
文档的操作
插入文档的基本操作,文档相当于一个json数据结构的文件。插入的语法为:
1 | db.COLLECTION_NAME.insert(document) |
其中要指定插入到的集合,document是一个json格式如下:
1 | { |
使用 db.col.find()
可以查找插入的文档。
更新文档 通过 update
语句,基本语法为:
1 | db.collection.update( |
通过 save()
方法,可以通过传入一个文档替换现有的文档。
删除文档 通过 remove
来删除,基本语法为:
1 | db.collection.remove( |
使用更新的方法 deleteOne()
和 deleteMany()
方法删除文档:
1 | db.collection.deleteMany({}) # 删除所有的文档 |
查询文档 简单的查询方式一种非结构化和一种结构化的输出方式:
1 | db.collection.find(query, projection) |
数据的运维
备份数据库
1 | mongodump -h localhost:27017 -d test -u test -p testpwd -o /home/backup --authenticationDatabase admin |
恢复数据库
1 | mongorestore -h localhost:27017 -d test --dir /home/backup -u admin -p admin |