MongoDB入门简介(一)

###MongoDB是什么?

MongoDB是一种强大,灵活,可扩展的存储方式。与关系型数据库不同,它是一种面向文档的数据库。它扩展了关系型数据库的很多辅助功能,如辅助索引,范围查询,和排序,还有一些独特功能,丰富的数据模型,良好的可扩展性,如内置对MapReduce式聚合的支持,对地理空间索引的支持。

文档是MongoDB中的数据的基本单元,非常类似于关系型数据库管理系统中的一行记录,类似地,集合可以看做是没有固定模式的表,MongoDB的单个实例可以容纳多个数据库。数据库,集合,文档是MongoDB中最核心的三个概念。

####MongoDB的启动与链接

MongoDB服务端进程启动命令如下:

`$ mongod --dbpath --port --fork --config --logpath`

*    --dbpath:指定数据目录,默认值是/data/db

*    --port: 指定服务器监听的端口号

*    --fork: 以守护进程的方式运行MongoDB,创建服务器进程

*    --logpath:指定日志输出路径    、

*    --config:指定配置文件

MongoDB自带一个Javascript shell,用命令行与MongoDB实例交互                  `$ mongo -h ipaddress -p27017`

####MongoDB的CRUD操作

1.insert

insert插入一个文档,文档是json格式

`db.person.insert({"name":"ming","age":18})

db.person.insert({"name":"Jack", "age":100)`

如果想实现批量插入,请用javascript中得for循环语句

2.find操作

默认是查出集合中得20条数据

`db.person.find()`

还可以在find中加入众多的查询条件

`db.person.find({"name":"ming")`

find操作室返回一个结果集,还能对返回的结果集进行限定条数或者排序

`db.person.find().limit(10)

db.person.find().sort("name":1)`

3.update操作

update方法的第一个参数为查询的条件,第二个参数为更新的值

`db.person.find{{"name":"ming"},{"name":"xing",age:25}}`

4.remove操作

`db.person.remove()`

这个语句将删除集合中所有的文档

####MongoDB的聚合操作

1.count

count是最简单地聚合操作,查询出集合中的文档数目

`db.person.count()`

2.distinct

对指定条件进行去重

`db.person.distinct("age")`

3.group

group操作比较复查,参数较多

`db.person.group({"key":{"age":true}},

"initial":{"person":[]},

"reduce":function(doc,out){

out.person.push(doc.name)},

"condition":{"age":{$lt:30}}

})`

####MongoDB的索引操作

添加索引

`db.person.ensureIndex({"name":1})`

添加唯一索引

`db.person.ensureIndex({"name":1},{"unique":true})`

删除索引

`db.person.dropIndexes({"name_1")`

可以用性能分析函数explain()来分析执行的效率,对大数据的集合添加索引能有效增加查询效率

***

######MongoDB与PHP的交互

######MongoDB的部署

你可能感兴趣的:(MongoDB入门简介(一))