1.介绍
1.1. 下载
上MongoDB官网 ,发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意:
偶数为“稳定版”(如:1.6.X,1.8.X),奇数为“开发版”(如:1.7.X,1.9.X),这两个版本的区别相信大家都知道吧。
32bit的mongodb最大只能存放2G的数据,64bit就没有限制。
1.2. 启动
启动之前,我们要给mongodb指定一个文件夹,这里取名为”db",用来存放mongodb的数据。
首先找到“mongodb”的路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹。
看下是否开启成功,从图中的信息中获知,mongodb采用27017端口,那么我们就在浏览器里面键入“http://localhost:27017/”,
打开后,mongodb告诉我们在27017上Add 1000可以用http模式查看mongodb的管理信息。
2. 基本操作
输入mongo命令打开shell,其实这个shell就是mongodb的客户端,同时也是一个js的编译器,默认连接的是“test”数据库。
2.1. insert 操作
数据库有了,下一步就是集合,这里就取集合名为“person”,要注意的就是文档是一个json的扩展(Bson)形式。
2.2. find操作
我们将数据插入后,肯定是要find出来,不然插了也白插,这里要注意两点:
① “_id": 这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性。
② 严格的按照Bson的形式书写文档,不过也没关系,错误提示还是很强大的。
2.3. update操作
update方法的第一个参数为“查找的条件”,第二个参数为“更新的值”,学过C#,相信还是很好理解的。
2.4. remove操作
remove中如果不带参数将删除所有数据,在mongodb中是一个不可撤回的操作。
3. 数据操作
3.1. 增删查改
3.1.1. Insert操作
文档是采用“K-V”格式存储的,JSON里面Value可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相同的方式也适合于BSON。
常见的插入操作也就两种形式存在:“单条插入”和“批量插入”。
mongo命令打开的是一个javascript shell。
3.1.2. Find操作
日常开发中,查询最多的也就是二类:
1: >, >=, <, <=, !=, =。
2:And,OR,In,NotIn
这些操作在mongodb里面都封装好了,下面就一一介绍:
<1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面是一一对应的,举几个例子。
<2> "无关键字“, "$or", "$in","$nin" 同样我也是举几个例子
<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”,这玩意威力很强的。
<4> 有时查询很复杂,可以使用修改器$where,为什么这么说,是因为$where中的value 就是我们非常熟悉,非常热爱的js来助我们一马平川。
3.1.3. Update操作
更新操作无非也就两种,整体更新和局部更新,使用场合相信大家也清楚。
整体更新
update是属于整体更新。
局部更新
有时候我们仅仅需要更新一个字段,而不是整体更新,mongodb中已经给我们提供了两个修改器: $inc 和 $set。
$inc修改器
$inc也就是increase的缩写,比如做一个在线用户状态记录,每次修改会在原有的基础上
自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。
$set修改器
代码如下:
3.1.4. upsert操作
upsert操作就是说:如果没有查到,就在数据库里面新增一条,其实这样也有好处,就是避免了在数据库里面判断是update还是add操作,使用起来很简单
将update的第三个参数设为true即可。
3.1.5. 批量更新
在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单的,在update的第四个参数中设为true即可。
3.2. 聚合
聚合操作有:count,distinct,group,mapReduce。
3.2.1. Count操作
代码如下: