1.简单介绍
-
MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最 像关系型数据库(MySQL)的非关系型数据库。
-
MongoDB是一个基于分布式文件存储的数据库由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
-
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
-
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
-
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认 为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。
2.在Windows中部署
2.1 下载安装包
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址: Try MongoDB Atlas Products | MongoDB
2.2 解压安装启动
将下载下来的压缩包解压
在解压目录中,手动建立一个目录用于存放数据文件,如 data/db
弄完上面的那些操作之后就可以开始启动了
命令行参数方式启动服务
在bin 目录中打开命令行提示符(cmd),输入如下命令:
mongod --dbpath=..\data\db
我们在启动信息中可以看到, mongoDB的默认端口是27017,如果我们想改变默认的启动端口,可以通过--port来指定端口。 为了方便我们每次启动,可以将安装目录的bin目录设置到环境变量的path中, bin mongo 客户端连接服务用的。
Shell连接
MongoDB启动完成后,找到bin目录下的mongo.exe双击连接
或者使用shell连接
mongo
或
mongo --host=127.0.0.1 --port=27017
查看MongoDB版本
db.version()
查看已经有的数据库
show databases
退出 mongodb
exit
帮助
mongo --help
MongoDB javascript shell是一个基于javascript的解释器,故是支持js程序的
Compass 图形化界面客户端
到MongoDB官网下载MongoDB Compass,
地址: https://www.mongodb.com/download-center/v2/compass?initial=true
如果是下载安装版,则按照步骤安装;如果是下载加压缩版,直接解压,执行里面的 MongoDBCompassCommunity.exe 文件即可。
在打开的界面中,输入主机地址、端口等相关信息,点击连接:
3、基本常用命令
3.1、选择和创建数据库
选择和创建数据库的语法格式:
use 数据库名称
如果数据库不存在则创建,如果存在则切换到数据库
注意 : 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。简单来讲就是你新建的数据库并不会保存在磁盘中而是保存在内存中,当你数据库中添加了数据之后才会真正的保存到磁盘。
查看当前所在数据库
db
MongoDB 中默认的数据库为 test,如果你没有选择数据库,集合将存放在 test 数据库中。
数据库名可以是满足以下条件的任意UTF-8字符串。
-
不能是空字符串
-
不得含有空格、.(小数点)、$、/、\和\0(空字符)
-
应该全部小写
-
最多不能超过64字符串
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
-
admin:类似于Mysql的root数据库,要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特 定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
-
local:在部署集群用到,如果我们使用到了集群。那么集群的策越会复制库数据,但是如果把数据存放在local中那么这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
-
config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
3.2、数据库删除
MongoDB删除数据库的语法格式
db.dropDatabase()
注意:用于删除已经持久化的数据库
3.3、集合操作
集群:类似于Mysql中的表
创建方式分为显示创建、隐示创建。
3.4、显示创建
db.createCollection(name)
name:为要创建的集合名称
查看当前库中的表: show tables命令
show collections
或
show tables
集合命名的规范
-
集合名不能说空字符串
-
不能含有\0(空字符),这个字符表示集合名的结尾。
-
不能以system开头,这是系统为集合保留的前缀。
-
用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除 非你要访问这种系统创建的集合,否则千万不要在名字里出现$。
3.5、隐示创建
当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合
3.6、集合的删除
db.collection.drop()
或
db.集合名.drop()
返回值
如果成功删除选定集合,则drop()方法返回true,否则返回false。
列如要删除的mycollection集合
db.mycollection.drop()