随笔分类 -  MongoDB

摘要:3.7.5、聚合框架(核心) MapReduce功能强大,但是它的复杂度和功能一样强大,那么我们需要MapReduce的功能,使用聚合框架中的聚合函数:aggregate()。 3.7.5.1、group操作 group主要进行分组的数据操作。 范例:实现聚合查询的功能 db.emps.aggreg 阅读全文
posted @ 2017-12-13 22:49 做梦当财神 阅读(261) 评论(0) 推荐(0) 编辑
摘要:3.7.4 MapReduce MapReduce 是整个大数据的精髓所在(实际中别用,因为在MongoDB中属于最底层操作)。 MapReduce是一种计算模型,简单的说就是将大批量的工作分解执行,然后再将结果合并成最终结果。 MapReduce 就是分为两步处理数据: Map:将数据分别取出 R 阅读全文
posted @ 2017-12-08 13:08 做梦当财神 阅读(295) 评论(0) 推荐(0) 编辑
摘要:3.7.3 group操作 使用“group”操作可以实现数据的分组操作,MongoDB里将集合依据不同的的key进行分组操作,并且每个组产生一个处理文档。 范例:查询年龄大于等于19岁的学生信息,并且按照年龄分组 db.runCommand({"group" : { "ns" : "student 阅读全文
posted @ 2017-12-07 21:53 做梦当财神 阅读(335) 评论(0) 推荐(0) 编辑
摘要:3.7.2 消除重复数据 在SQL中对于重复的数据可以使用"DISTINCT"消除,在MongoDB中依然支持。(distinct不同的) 范例:查询所有name的信息 本次的操作没有直接的函数支持,只能够利用runCommand()函数。 runCommand()直接通过db调用,不经过集合调用, 阅读全文
posted @ 2017-12-07 20:52 做梦当财神 阅读(211) 评论(0) 推荐(0) 编辑
摘要:3.7 聚合(重点) 信息的统计操作就是聚合(直白:分组统计就是一种聚合操作)。 3.7.1 取的集合的数据量 对于集合的数据量而言,在MongoDB里面直接使用count()函数就可以完成。 范例:统计students表中的数据量 db.students.count() 范例:模糊查询 db.st 阅读全文
posted @ 2017-12-07 17:18 做梦当财神 阅读(789) 评论(0) 推荐(0) 编辑
摘要:3.6.4 地理信息索引 地理信息索引分为两类:2D平面索引,2DSphere球面索引。在2D索引里面基本上能够保存的信息都是坐标,而且坐标保存的就是经纬度坐标。 范例:定义一个shop的集合 db.shop.insert({loc : [10, 10]}) # loc表示坐标 db.shop.in 阅读全文
posted @ 2017-12-07 14:10 做梦当财神 阅读(349) 评论(0) 推荐(0) 编辑
摘要:3.6.3 全文索引 在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是利用了某个字段上实现的模糊查询,但这个时候返回的信息并不会很准确,因为只能够查A字段或B字段,而在MongoDB里面实现了非常简单的全文检索。 范例:定义一个新的集合 db.news.insert({"title" : 阅读全文
posted @ 2017-12-07 14:02 做梦当财神 阅读(1367) 评论(0) 推荐(0) 编辑
摘要:3.6.2 过期索引 在一些程序的站点会出现若干秒之后信息被删除的情况,例如:手机信息验证码,那么在MongoDB里面可以轻松实现过期索引。但这个时间往往不怎么准确。 范例:设置过期索引(实现过期索引,需要保存一个时间信息。) db.phones.ensureIndex({"time" : 1}, 阅读全文
posted @ 2017-12-06 22:50 做梦当财神 阅读(440) 评论(0) 推荐(0) 编辑
摘要:3.6.1 唯一索引 唯一索引的主要目的是用在某一个字段上,使该字段的内容不重复。 范例:创建唯一索引 db.students.ensureIndex({"name" : 1}, {"unique" : true}) 在name字段上的内容绝对不允许重复。 范例:在students集合里面增加重复的 阅读全文
posted @ 2017-12-06 19:36 做梦当财神 阅读(343) 评论(0) 推荐(0) 编辑
摘要:3.5 索引(重点) 任何数据库中,索引都是一种提升数据库检索性能的手段,这一点在MongoDB数据库中同样是存在的,MongoDB数据库里面存在两种索引创建:一是自动创建,另外是手工创建。 范例:重新准备一个新的简单集合 此时在students集合上并没有设置任何的索引,下面通过getIndexe 阅读全文
posted @ 2017-12-05 22:48 做梦当财神 阅读(316) 评论(0) 推荐(0) 编辑
摘要:3.5 游标(重点) 所谓游标就是指数据可以一行行的进行操作,非常类似于ResultSet数据处理。在MongoDB里对游标的控制使用find()函数就可以返回游标。对于返回的游标如果想进行操作,使用两个函数: 判断是否有下一行数据:hasNext() 取出当前数据:next() var curso 阅读全文
posted @ 2017-12-05 20:58 做梦当财神 阅读(333) 评论(0) 推荐(0) 编辑
摘要:3.4.4 删除数据 在MongoDB里面删除数据使用“remove()”。但是这个函数有两个可选项: 删除条件:满足条件的数据被删除。 只删除一个数据:设置为true或者是1表示只删除一个。 范例:删除所有姓名里面带有“谷”的信息 db.students.remove({"name" : /谷/} 阅读全文
posted @ 2017-12-05 20:24 做梦当财神 阅读(253) 评论(0) 推荐(0) 编辑
摘要:3.4.3.2 修改器(原子操作) 对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含数组),所以在MongoDB在设计的时候就提供有一系列的修改器的应用,那么像之前使用的“set1.inc:主要针对于一个数字字段,增加某个数字字段的数据内容; 语法 阅读全文
posted @ 2017-12-04 21:24 做梦当财神 阅读(322) 评论(0) 推荐(0) 编辑
摘要:3.4.3 数据更新操作 MongoDB数据存的是副本数据, 最终的数据还要保存在传统的数据库里,所以如果关系型数据库里数据变了,最好的方法是删除里面的MongoDB数据重新插入。 在MongoDB里面对于数据的更新操作提供了两类函数:save()、update() 3.4.3.1 函数的基本使用 阅读全文
posted @ 2017-12-04 11:29 做梦当财神 阅读(220) 评论(0) 推荐(0) 编辑
摘要:3.4.2.11 数据分页显示 在MongoDB里面的数据分页显示也是符合于大数据要求的操作函数: skip(n):表示跨过多少数据行 limit(n):取出的数据行的个数限制 范例:分页显示(比如显示第一页,skip(0),limit(3)) db.students.find().skip(0). 阅读全文
posted @ 2017-12-04 10:24 做梦当财神 阅读(240) 评论(0) 推荐(0) 编辑
摘要:3.4.2.10 数据排序 在MongoDB里数据排序操作使用“sort()”函数,在进行排序的时候可以有两个顺序:升序(1),降序(-1)。 范例:排序 db.students.find().sort({"score" :-1}).pretty() # 成绩按降序排列 但是在进行排序的过程里面有一 阅读全文
posted @ 2017-12-04 10:05 做梦当财神 阅读(377) 评论(0) 推荐(0) 编辑
摘要:3.2.4.9 正则运算 如果想实现模糊查询,必须使用正则表达式,而且正则表达式使用的语言是Perl兼容的正则表达式的形式。 要实现正则使用,则按照如下的定义格式: 基础语法:{key : 正则标记} 完整语法:{key : {"regex":,"options" : 选项}} o 阅读全文
posted @ 2017-12-03 22:53 做梦当财神 阅读(712) 评论(0) 推荐(0) 编辑
摘要:3.4.2.8 条件过滤 关系型数据库开发对于数据的筛选,想到的一定是where语句,MongoDB里面提供的是"$where"。 范例:使用where进行数据的查询 db.students.find({"$where" : "this.age>20"}).pretty() db.students. 阅读全文
posted @ 2017-12-03 22:40 做梦当财神 阅读(7972) 评论(0) 推荐(0) 编辑
摘要:3.4.2.7 判断某个字段是否存在 使用“$exists”可以判断某个字段是否存在,如果设置为true表示存在,false表示不存在。 范例:查询具有parents成员的数据 db.students.find({"parents" : {"$exists" : true}}).pretty() 范 阅读全文
posted @ 2017-12-03 21:36 做梦当财神 阅读(381) 评论(0) 推荐(0) 编辑
摘要:3.4.2.6 嵌套集合运算 MongoDB数据库里每个集合数据可以继续保存其它的集合数据。例如:有些学生信息中需要保存家长信息。 范例: 增加数据 db.students.insert({"name" : "高大拿 - A", "sex" : "男", "age" : 19, "score" : 阅读全文
posted @ 2017-12-03 16:14 做梦当财神 阅读(1083) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示