MongoDB 介绍
MongoDB 是一款跨平台、面向文档的数据库.用它创建的数据库可以实现高性能,高可用性,并且能够轻松扩展.
MongoDB 的运行方式主要基于两个概念:集合(collection)--->表(table)与 文档(document) ---> 行(row)
文档就是一组键-值对。文档有着动态的模式,这意味着同一集合内的文档不需要具有同样的字段或结构.
主键id:
_id 是一个 12 字节长的十六进制数,它保证了每一个文档的唯一性.在插入文档时,需要提供 _id .如果你不提供,那么MongoDB就会为每一个文档提供一个唯一的ID.ID的前4个字节代表的是当前的时间戳,接着的后3个字节表示机器的id号,接着的2个字节表示MongoDB服务器进程ID,最后的3个字节代表递增值.
MongoDB的优势
1.模式较少 MongoDB是一种文档数据库 一个集合可以包含各种不同的文档 每个文档的字段数 内容以及文档大小都可以不同
2.采用单个对象的模式 清晰简洁
3.没有复杂的连接功能
4.深度查询功能 支持对文档执行动态查询 有基于文档的查询语言 丰富的查询功能
5.易于扩展
6.面向文档的存储 以JSON格式的文档保存数据
MongoDB的安装和启动
#下载源码包 [root@localhost ~]# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz [root@localhost ~]# tar -zxvf mongodb-linux-x86_64-4.0.0.tgz [root@localhost ~]# mv mongodb-linux-x86_64-4.0.0 /usr/local/mongodb #创建数据文件目录 [root@localhost mongodb]# mkdir -p data/db #创建日志目录 [root@localhost mongodb]# mkdir logs #修改配置文件 dbpath = /usr/local/mongodb/data/db logpath = /usr/local/mongodb/logs/mongodb.log port = 27017 fork = true auth=false 是否对用户进行权限验证 开发环境设置为false bind_ip=0.0.0.0 #修改环境变量 vi ~/.bash_profile PATH=/usr/local/mongodb/bin:$PATH:$HOME/bin source ~/.bash_profile #启动服务 mongod -f /usr/local/mongodb/mongodb.conf [root@localhost bin]# ./mongod -f mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 1184 child process started successfully, parent exiting #启动mongodb客户端 [root@localhost bin]# mongo MongoDB shell version v4.0.0 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.0 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group #查看所有的数据库列表 > show dbs admin 0.000GB config 0.000GB local 0.000GB mydb 0.000GB #跳转到指定的数据库 > use mydb switched to db mydb #查看当前所在的数据库 > db mydb #删除指定的数据库 >use mydb switched to db mydb >db.dropDatabase()
[root@localhost bin]# ss -nutl Netid State Recv-Q Send-Q Local Address:Port tcp LISTEN 0 128 *:27017 [root@localhost bin]# ps aux | grep mongod root 1179 0.0 0.0 112660 972 pts/0 R+ 21:22 0:00 grep --color=auto mongod [root@localhost bin]# kill -9 1108
MongoDB集合(表)操作
1.创建集合
在 MongoDB ,创建集合采用 db.createCollection(name, options) db.createCollection(name, options) 方法
在 MongoDB 中,默认的数据库是 test,如果你没有创建任何数据库,那么集合就会保存在 test 数据库中
方式1 如果当前没有mytestcol则会自动创建mytestcol > db.mytestcol.insert({"name":"555"}) 方式2 db.createCollection("mycollection") 方式3 db.createCollection("mycol", {capped:true,size:6142800,max:10000 })
> show collections mycol mycollection mytestcol 删除文档(表) > db.mytestcol.drop() true > show collections mycol mycollection
MongoDB的数据类型
1. String: 字符串 存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的
2. Integer: 整型数值 用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位
3. Boolean : 布尔值 用于存储布尔值
4. Double: 双精度浮点值
5. Arrays: 用于将数组或者列表或多个值存储为一个键
6. Timestamp :时间戳。记录文档修改或添加的具体时间
7.Date: 日期时间
8.Object ID: 对象ID
9.Code : 代码类型 用来存储javascript代码
10.Regular expression: 正则表达式类型