MongoDB学习总结
MongoDB是一种nosql数据库,其与关系型数据库有很大的不同
关系型数据库中的表在MongoDB中被称为集合,关系型数据库中每行记录在MongoDB中被称为文档,关系型数据库中的表的字段在MongoDB中被称为key。MongoDB中没有主外建的概念。
基本概念:
1.文档
文档是MongoDB的最基本的单元,也是MongoDB的核心概念。
文档的键值对是有序的、区分大小写的、不能重复的,而且键应该是字符串。文档中对键的要求:
键不能含有\0(空字符),这个字符用来表示键的结尾。
.和$是有特殊意义的字符。
以下划线开头的键是保留的。
2.集合
集合是文档的组合。集合是无模式的,即集合是文档的组合。
集合的命名规范:
集合的名称不能使空字符串
集合名不能含有\0空字符
不能以system.开头
不能含有保留字符$
3.数据库
多个集合组成数据库
数据库的名称最终会变成文件系统中的文件名,因此数据库的名称要求为:
不是空字符串
不得含有空格,.,$,\,/,\0
应该全部小写
最多64字节
特殊的数据库
admim:相当于root数据库,一些特定的数据库命令只能在admin数据库中运行
local:这个数据永远不会被复制,可以用来限于本地单台服务器的任意集合。
config:用于保存分片的相关信息
启动MongoDB:
MongoDB的启动参数有很多,我们可以输入mongod --help来查看启动
具体的参数说明详见:http://www.uspcat.com/forum.php?mod=viewthread&tid=7722&extra=page%3D1
MongoDB启动时还会启动一个非常基本的HTTP服务器,监听端口为比主端口(默认为27017)高1000的端口,即28017,因此我们可以通过浏览器获取数据库的管理信息。
MongoDB自带一个javascriptshell,我们可以再这个shell中定义和调用javascript函数。
MongoDB中内置javascript引擎可以直接执行js代码。
function insert(object){
db.getCollection("test").insert(object);
}
insert({name:"zhangsan"});
shell也可以用eval()
db.eval("return 'mongodb'")