MongoDB突然一下子那样冒出来成为一个12亿美元的公司和最热门的高科技企业之一。可是MongoDB的旗舰产品好在哪里呢? 我的公司在过去的一年中热衷于MongoDB。我们已经看到,我们和我们
你听到过相关宣传吧。 MongoDB突然一下子那样冒出来成为一个12亿美元的公司和最热门的高科技企业之一。可是MongoDB的旗舰产品好在哪里呢?
我的公司在过去的一年中热衷于MongoDB。我们已经看到,我们和我们的合作伙伴忙于各种各样的MongoDB项目,所以我想为了启发某些人,某些想知道通过利用NoSQL数据库的文档特色,哪些任务可以被最佳操控的人,有必要将它们罗列成一个top 10列表。我们遇到的工作可分解为这些条目:
1.个人信息
是的,当进行身份认证或授权时LDAP很好用,但分析时怎么办,那些不与系统密切相关的人呢?还有形式记录或孩子成长资料或客户奖励呢?还有用户促销活动,他们点击了什么呢?总是有新数据添加到用户的个人信息中,从常见的顶层的内容(电话,地址,电子邮件,信息等)到下面一层的信息(如电话型号)。其他的数据库类型还不能足够快的捕捉数百种我们互相联系的方式或我们付款的十多种方法。
2.产品或者产品名录数据
回想以前,我曾经在一家(或许是两家)手机制造长工作,后来在一家化工厂工作。每个公司都有同一个令人奇怪的问题:产品是由其他产品组合成的,而且组成产品的子产品会随着时间而变化,这就使得这些产品具有多个品牌或者标识。在文档数据库里描述一个包含着包含事物的事物的事物比在其他类型的数据库里更为简单。
3.地理空间数据
存储地理空间数据未必是因为MongoDB是大型的文档数据库,而是因为它具有特别的地理空间处理功能。无论在计算你骑自行车经过了多长距离上,还是确定客户所在的地理位置信息上,MongoDB都是很好的选择。
4.基金
金融行业很复杂,因此不要让它比它所要求的更复杂。 投资工具通常由其他投资工具组成,而且这些子投资工具还可以组成其他投资工具。不管是“宽带”基金、或者互助基金 ,或者基金的基金,如果你试图对这些基金进行操作,而且想把这些数据平面化,那么你也许非常痛苦。是的,非常令人讨厌,这个行业充满着包含着包含文档的文档的文档,因此为何不使用文档数据库呢?
5.元数据
如Forrest Gump 所说:“事情发生了”,然后你会有很多这样的事情。你需要对它们进行分类,,然后说明“它”像什么。MongoDB做这方面的工作做的很好。还有其他的类型的数据库也可以做这方面的工作(比如:图形数据库),不过MongoDB是很好的选择。
6. 交流
人是社交生物,在过去的十年左右我们已经生成了艾字节(2的16次方)的社交数据。Mongo是个很好的用来处理负载的选择。经常性的,人们讨论时事问题时,会产生大量相关的元数据。MongoDB也善于存储这些。
7. 内容
人们不是毫无缘由的把MongoDB叫做“文档”数据库。它善于服务文字和HTML,包括存储和索引内容并控制它的结构。
8. 游戏
你需要浇花,或者服务那些餐厅客户,或者种植蔬菜,或者杀死僵尸,或者其他。游戏是有目标的,包括通过获得成就或者付出努力完成多个目标。无论是titanium rake还是BFG 9000, MongoDB可以同时处理,并保存(经常是多级的)数据。
9.事件
MongoDB也许不是事件记录这个领域的唯一的玩家,不过,它确实非常好的选择,因为它不会降低你的处理速度。
10.票据或者发货单
订单具有条陈产品数据的项。订单还可以发送给一个地方,而在下一个地方接收收订单票据。这就是订单运行的状况,而且总是按照这么运作的。订单的执行过程中还要经过许多状态。你可能狂妄想用NoSQL数据库做"事物处理“,而且如果你正确地设计这些文档的话,MongoDB就可以执行这些相互分离的操作。MongoDB可以处理并行操作、可以高效地“添加更多订单”,可以追踪销售票据经过系统的各种状态。
你在什么样的项目上正在使用MongoDB?你发现MongoDB最适合哪些地方?以及在哪些地方你确定其他东西会做的更好?请在评论中写出来,让我们也知道这些。