随笔分类 -  MongoDB

摘要:一:背景 1. 讲故事 前段时间有位朋友在微信群问,在向 mongodb 中插入的时间为啥取出来的时候少了 8 个小时,8 在时间处理上是一个非常敏感的数字,又吉利又是一个普适的话题,后来我想想初次使用 mongodb 的朋友一定还会遇到各种新坑,比如说: 插入的数据取不出来,看不爽的 Object 阅读全文
posted @ 2020-08-16 17:24 一线码农 阅读(7551) 评论(20) 推荐(22) 编辑
摘要:当你第一眼看到explain和hint的时候,第一个反应就是mysql中所谓的这两个关键词,确实可以看出,这个就是在mysql中借鉴过来的,既然是借鉴 过来的,我想大家都知道这两个关键字的用处,话不多说,速速观看~~~ 一:explain演示 1. 构建数据 为了方便演示,我需要create ten 阅读全文
posted @ 2016-08-04 16:27 一线码农 阅读(9620) 评论(0) 推荐(4) 编辑
摘要:这篇我们来看mongodb另一个非常有意思的东西,那就是$lookup,我们知道mongodb是一个文档型的数据库,而且它也是最像关系型数据库的 一种nosql,但是呢,既然mongodb是无模式的,自然就很难在关系型数据库中非常擅长的多表关联上发挥作用,在这之前,我们可以使用DbRef,但 是呢, 阅读全文
posted @ 2016-08-02 12:17 一线码农 阅读(39142) 评论(6) 推荐(5) 编辑
摘要:mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍, 刚好我们的生产业务场景中就有这个一个案例。。。 一:案例分析 我们生产的推荐系统要给用户发送短信和邮件的关联营销。第一波是:当用户在淘宝上下订单之后,我 阅读全文
posted @ 2016-07-29 13:23 一线码农 阅读(3783) 评论(4) 推荐(7) 编辑
摘要:好久没过来吹牛了,前段时间一直赶项目,没有时间来更新博客,项目也终于赶完了,接下来就要面临双十一这场惊心动魄的处女秀考验, 我们项目中会有一个wcf集群,而集群地址则放在mongodb中,所以mongodb的核心地位可想而知,如果mongodb挂掉,整个项目也就陷入 瘫痪,想让mongodb不宕机, 阅读全文
posted @ 2015-10-12 00:46 一线码农 阅读(15121) 评论(38) 推荐(56) 编辑
摘要:作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者,因为提供了丰富的linq操作,相当方便。官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads。下载后,还提供了一个酷似msdn的帮助文档。samus驱动:https://github.com/samus/mongodb-csharp/downloads。下面就具体看看samus驱动,https://github.com/samus/mongodb-csharp/blob/master/exampl.. 阅读全文
posted @ 2012-03-09 00:51 一线码农 阅读(52753) 评论(49) 推荐(79) 编辑
摘要:这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面:1. 安装部署2. 状态监控3. 安全认证4. 备份和恢复,下面我们就一点一点的讲解。一:安装部署 我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mongodb,在mongodb里面提供了一个叫做“服务寄宿”的模式,我想如果大家对wcf比较熟悉的话很容易听懂。好了,我们实践一下,这里我开一下D盘里面的mongodb。这里要注意的有两点: <1> logpath: 当我们使用服务寄宿的时候,用眼睛都能想明白肯定不会用conso 阅读全文
posted @ 2012-03-08 01:22 一线码农 阅读(55562) 评论(14) 推荐(38) 编辑
摘要:在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对。一:分片 mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。下面我对这张图解释一下: 人脸: 代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。 mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合.... 好了,mongos就是一个路由服务器,它会根据管理员设置的“片... 阅读全文
posted @ 2012-03-07 12:31 一线码农 阅读(82662) 评论(32) 推荐(28) 编辑
摘要:从这一篇开始我们主要讨论mongodb的部署技术。 我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署,如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕。一:主从复制1: 首先看看模型图2: 从上面的图形中我们可以分析出这种架构有如下的好处: <1> 数据备份。 <2> 数据恢复。 <3> 读写分离。3:下面我们就一一实践 实际应用中我们肯定是多服务器部署,限于自己懒的装虚拟机,就在一台机器上实践了。第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。第二步 阅读全文
posted @ 2012-03-04 23:07 一线码农 阅读(79807) 评论(37) 推荐(33) 编辑
摘要:这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅。 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵。 从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中就包括我们今天所说的“索引查找”,如果大家对sqlserver比较了解的话,相信索引查找能给我们带来什么样的性能提升吧。 我们首先插入10w数据,上图说话:一:性能分析函数(explain)好了,数据已经插入成功,既然我们要做分... 阅读全文
posted @ 2012-02-29 01:01 一线码农 阅读(90479) 评论(31) 推荐(37) 编辑
摘要:今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标。一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce。<1> count count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样。<2> distinct 这个操作相信大家也是非常熟悉的,指定了谁,谁就不能重复,直接上图。<3> group 在mongodb里面做group操作有点小复杂,不过大家对sql server里面的group比较熟悉的话还是一眼能看的明白的,其实gro 阅读全文
posted @ 2012-02-21 13:52 一线码农 阅读(103469) 评论(39) 推荐(48) 编辑
摘要:看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的”lock file”阻止了mongodb的开启,接下来我们要做的就是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享。一: Insert操作 上一篇也说过,文档是采用“K-V”格式存储的,如果大家对JSON比较熟悉的话,我相信学mongodb是手到擒来,我们知道JSON里面Value可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相... 阅读全文
posted @ 2012-02-19 02:06 一线码农 阅读(147556) 评论(33) 推荐(66) 编辑
摘要:关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载 上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意: ①:根据 阅读全文
posted @ 2012-02-18 00:01 一线码农 阅读(435115) 评论(93) 推荐(107) 编辑