http://blog.csdn.net/billvsme/article/details/46526627
概述
mongodb 是文档型NoSQL数据库,存储 bson–> json二进制。内部执行引擎为js解释器,把文档存储成bson结构,在查询时,转化为js对象。并可以通过js语法操作。
mongodb 与传统数据库比
传统数据库是结构化数据库,列的个数类型都一样
文档数据库 以文档为单位
比如:
<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-rules" style="box-sizing: border-box;">{
<span class="hljs-rule" style="box-sizing: border-box;"><span class="hljs-attribute" style="box-sizing: border-box;">id</span>:<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 102, 102);"><span class="hljs-number" style="box-sizing: border-box;">1</span>,
name: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"billvsme"</span>,
age:<span class="hljs-number" style="box-sizing: border-box;">21</span>,
</span></span></span>}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>
<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-rules" style="box-sizing: border-box;">{
<span class="hljs-rule" style="box-sizing: border-box;"><span class="hljs-attribute" style="box-sizing: border-box;">id</span>:<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 102, 102);"><span class="hljs-number" style="box-sizing: border-box;">2</span>,
name: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"zhangshan"</span>,
phone:<span class="hljs-number" style="box-sizing: border-box;">12313</span>,
address:<span class="hljs-number" style="box-sizing: border-box;">23424</span>,
</span></span></span>}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>
都能存在某个表下面
文档数据库 最大特点就是“没有结构”,表下的每篇文档都可以有自己独特的属性和值
列如:评论回复,打分,在传统数据库至少要多张表,关联复杂,而在文档数据库中一篇文档就可以完成
<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-rules" style="box-sizing: border-box;">{
<span class="hljs-rule" style="box-sizing: border-box;"><span class="hljs-attribute" style="box-sizing: border-box;">title</span>:<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 102, 102);"><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'xxxx'</span>
comment:[
{
connent:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'你写的不错哦!!!'</span>,
reply:[<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'评论不错'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'写的不错'</span>]
</span></span></span>},
<span class="hljs-rules" style="box-sizing: border-box;">{
<span class="hljs-rule" style="box-sizing: border-box;"><span class="hljs-attribute" style="box-sizing: border-box;">connent</span>:<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 102, 102);"><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'写的不怎么样~~'</span>,
reply:[<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'赞同'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'非常赞同'</span>]
</span></span></span>}
]
}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>
mongodb安装
直接下载,解压即可运行
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz
mongodb 运行
mongodb文件结构
- bsondump 二进制导出
- mongo 客户端 (相当于mysql)
- mongod 服务端(相当于mysqld)
- mongodump 整体数据库导出
- mongoexport 导出容易识别 json 文档或者csv文档
- mongorestore 导入数据库
- mongos 路由器(分片时用)
启动mongod
mongod --dbpath /path/to/database --logpath /path/to/logfile --fork --port 27017
- –dbpath 数据库存放路径
- –logpath 日志文件路径
- –port 端口 默认 27017
- –fork 后台运行
测试
直接输入 ./mongo 即可进入mongo
- show dbs 查看数据库
- use database 进入数据库
- show tables/collections 查看表
- db.help() 帮助