这篇文章完成于2011年年底,即使到现在,一些方法还是差不多的,但是对于本文结尾持续化的说法现在已经不存在了,这个bug已经被修复。
什么是mongodb?
按照mongodb主页上的说明,它是一种高性能,可
扩展性和开放源码的,面向文档的数据库。是什么使得它不同于其他的NoSQL产品呢?我认为是
JSON和Javascript的完美
结合!
一般来说,如果我们要将一些数据存储到数据库,我们上来的第一件事就是设计一个好的表结构,之后会做一些
正则化来消除一些冗余。但对于MongoDB来说,整个过程是革命性的。它的模式是我们不需要去想什么表的结构。着眼于整个文档的结构才是关键。
尝试一下吧!
你可以到它的主页上,然后点击“Try It Out”,然后可以直接在网页上进行体验,它的shell的语言是
javascript,所以只要你有javascript的一般基础,就可以学习了。:)
来查看一下代码吧。
想要做一些修改?或只是好奇其机制?没问题。开源,你只需要克隆它的代码。这个库包含的所有数据库
内核实现和客户端的C++驱动。
class="c++" name="code">
$ git clone git://github.com/mongodb/mongo.git
$ cd mongo/
$ scons all
这里是
你需要遵循的贡献规则。
你把你的代码到上游之前,你必须签署贡献者
协议来解决可能造成的许可证问题。
要看到所有的
错误,在JIRA系统签署。浏览项目,看看是否有你感兴趣的一个错误,然后开始吧!
然而,还是有一件事我不太清楚。我的补丁应该怎么送?
- 有一个mongo-dev邮件列表,但似乎很少有人挂在那里。
- github上发送一个pull request。但它似乎10gen的家伙不经常检查pull request。有几个排队的请求。
- 评论JIRA系统,并安装补丁。
更新:Kristina(一位mongodb核心开发人员)在给我的邮件确认中使用JIRA是首选。
我的经验
这是我的第一个解决的错误描述。它的功能扩展为:让Javascript可以基于内部的内容来比较两个对象。现在在MongoDB中有两个
JavaScript引擎。我的解决办法是只为SpiderMonkey的,但我还不知道
怎么给谷歌的V8添加同样地功能。
10gen公司(MongoDB背后的公司,
他们提供所有的技术支持和开发)的人很好说话
,当时一个人说,他会送我一些MongoDB的马克杯。爽!你想要吗?(现在我的刷牙杯就是带mongodb标志的
)
- 简便的方法。从这里直接请求。
- 艰辛的道路。做贡献向他们发送补丁。 :-)
结尾
MongoDB是一个伟大的项目,该项目旨在解决现实世界中遇到的问题。例如,它具有复制,分片,和内置的可扩展能力。虽然它被指责有没有一个单一的耐久性,但是,嘿!在10gen的开发人员正在试图解决这个问题,给他们一段时间,这将不是一个问题。开始使用它,或开始贡献吧!