在一个新项目中使用mongodb, 选择Object mapper的时候,看到官方的推荐,我凌乱了:
Several mappers are available:
MongoMapper from John Nunemaker
Mongoid from Durran Jordan
Mongomatic from Ben Myles
MongoODM from Carlos Paramio
MongoModel from Sam Pohlenz
DriverAPILayer from Alexey Petrushin
搜索了一下,“哪个OM最好?”这样的问题在stackoverflow上被关闭了,不过这个文章非常有帮助:
http://stackoverflow.com/questions/1958365/mongoid-or-mongomapper
问:mongoid 还是用mongomapper
17票, Aynat答:
I have used MongoMapper for awhile but decided to migrate to MongoId. The reason is hidden issues plus arrogance towards users. I had to jump through hoops to make MongoMapper work with Cucumber (succeeded in the end) and to put a couple of patches even the project was simple, but it's not the point. When I tried to submit a bug fix (due to incompatibility with ActiveRecord), they seemingly got pissed off that I found a problem and I was pushed around. While I was testing, I also encountered a major bug with their query implementation, while their testing was tuned in a way that the tests pass. After my previous experience, didn't dare to submit it.
我用MongoMapper已经有一段日子了,不过最近决定要换成MongId。 mongomapper的人太自大,她们有BUG(比如不能跟cucumber兼容)也不愿意改,我提了PATCH他们反而觉得很愤怒,估计他们自我感觉太好,自认为产品美文体。而且mongomapper的查询接口太差劲。我还得做一些修改才能让代码工作。我不介意修改代码,但是由于之前的不好的经验,这次我不敢提PATCH了。。。 而且, mongoid的社区(提交代码的人啊啥的)比mongomapper的强太多了。
5票, mtkd答:
Did some testing with MongoMapper last week, it was stable but I found the query interface a little limited (also some of the AR logic was quirky), switched to Mongoid today and it feels much better to use - and more intuitive if you are used to AR.
上周对MongoMapper做了些测试,它确实稳定,但是查询接口还是不太理想(而且有的active record的逻辑也很奇怪), 今天我换到了mongid上,用起来舒服多了。而且对于熟悉AR的朋友也很直观。
30票,Nader答:
(2010年一月答案)i've been using both for the past couple weeks. Mongomapper has better support for relational associations (non-embedded) and has greater third-party support. Mongoid has better query support, much better documentation (MM has close to none, though a website is supposedly in the works), Rail 3 support (and thus Devise support) and a slightly more active community on Google Groups.
I ended up going with Mongoid.
这两个我都用了几周。Mongomapper对于关联支持的很好,而且被很多第三方工具支持。 Mongoid的查询接口做的更好,而且文档也强多了(MongoMapper的文档都关掉了(?))。Mongoid还支持RAILS3,它的论坛也更活跃。
(2011年一月追加答案)
Since I originally wrote this answer Mongoid has picked up lots of third-party support and the difference in the communities is even greater. In my opinion Mongoid is more of a clear choice today. Performance should be relatively the same as they both go through the Ruby driver. Though you need to be careful with OM not to construct horrendous documents. – Nader Feb 1 '11 at 0:53
过去一年里,MongoID 被更多的第三方工具支持,所以它们的差距是越来越大了。在我看来,现在Mongid更好了。我们应该毫不犹豫的选择它。 它们在性能上估计差距不大,因为用的都是RUBY的驱动。
其他几个答案也很吸引我,可惜被关掉了:
Which Rails Object Mapper to choose for MongoDB? [closed]
从这个文章(
http://praktikanten.brueckenschlaeger.org/2010/11/23/do-i-use-mongoid-mongomapper-or-mongomatic-as-my-ruby-orm-for-mongodb) 中 有 三者的对比(mongoid, mongomapper, mongomatic). 其中对于mongomatic的说法是:简单:
mongoid:
better support for embedded documents
better support for very large documents (>500kb)
closer to activerecord, by making use of active model and an arel like query syntax
very nice and lean documentation to be found on the project website..
( 对embedded documents支持的更好
对大数据量的documents支持的更好( 》 500 KB)
更activerecord非常类似。使用了arel查询。
简明扼要的教程,非常棒。)
mongomapper:
better support for reference associations
supposedly it has a bigger community, or at least still had a bigger community last summer
better plugin interface
(对关联支持的更好, 社区很大(起码在写文章的时候,2010年夏天), 对PLUGIN支持的更好)
mongomatic
supposedly it’s faster. there is a benchmark posted on some blog. The benchmark itself can be downloaded on Github
it says it focusses on simplicity
(据说是最快的,官方文档说,它注重的是使用简单)
更多的文章都是2010年的了。。。呃。。。有点儿老旧,我还是用mongoid的(忙高一的)
分享到:
相关推荐
在 Scala 中与 MongoDB 进行交互,通常我们会使用 `mongo-scala-driver`,而不是 `mongo-java-driver`,因为 Scala 驱动提供了更符合 Scala 语言特性的 API 设计。本示例将详细介绍如何使用 `mongo-scala-driver` ...
MongoSessionStore 描述 MongoSessionStore是兼容会话存储的使用无论是或。 它还允许与任何(或没有!... 结合使用mongo或mongoid宝石。 # Gemfile gem "mongoid" # or gem "mongo" gem "mongo_session_stor
以下是关于MongoTemplate及它在 Dao 层中使用的一些关键知识点: 1. **MongoTemplate的引入**: - 在Java项目中,我们需要添加Spring Data MongoDB的依赖库,以便使用MongoTemplate。通常这会通过Maven或Gradle的...
mongo-mapper 为MongoDB映射POJO并不容易。 感谢的新编解码器功能。 只需用注释标记您的实体,创建EntityCodec ! 然后使用标准方法从MongoDB存储和访问数据。 为什么是我们呢? 简单易用。 使用标准(MongoDB)...
Mongo-shake 是阿里巴巴开发的一款高效、稳定且易于使用的MongoDB数据迁移工具,主要用于实现MongoDB集群之间的数据同步。它支持全量数据迁移和增量数据迁移,确保在不同MongoDB实例之间保持数据的一致性。这款工具...
"MongoDB 使用 MongoTemplate 实现统计和分组" MongoDB 是一个非常流行的 NoSQL 数据库,它可以存储大量的数据,但是有时候我们需要对这些数据进行分析和利用。在本文中,我们将介绍如何使用 MongoTemplate 实现...
Java使用POI将Mongo数据库数据导出到Excel文件;包含java 测试文件和各种jar包 ,bson-3.4.2.jar ,mongodb-driver-3.4.2.jar,mongodb-driver-core-3.4.2.jar,poi-3.9-20121203.jar
win7环境下,使用vs2017编译的MongoDB-c-driver 和MongoDB-cxx-driver。 下载之后可以直接放入C++工程中使用。 版本信息: mongo-c-driver-1.13.0, mongo-cxx-driver-r3.4.0
mongo映射器 用于 koast 的 mongo-mapper 调试单元测试: -npm install -g node-inspector -node-debug _mocha lib / ** /*.Test.js
MongoVUE-Installer是MongoVUE的安装程序,通常包含了MongoVUE的所有组件和依赖,方便用户在Windows操作系统上快速安装和使用MongoVUE。 MongoDB是一个流行的开源、分布式、文档型的NoSQL数据库系统。它以其灵活性...
入门该项目是使用构建的。git clone https://github.com/vivitos/mongo-aggregations.gitcd mongo-aggregationsnpm install 不要忘记在/ conf文件夹中的配置文件中配置MongoDB url和dbName。 有关配置文件的更多信息...
mongoVUE.1.6.9.破解文件,解压后覆盖安装目录中的MongoVUE.exe文件 安装文件下载地址:http://www.mongovue.com/downloads/
总结来说,MongoVUE是一款为MongoDB用户量身定制的高效管理工具,它的绿色版特性使得在Windows环境下无需安装即可使用,大大提升了工作效率。无论你是数据库管理员还是开发者,MongoVUE都能成为你操作MongoDB数据库...
Koa-Mongolog 用于将 http 查询记录到中间件。...安装npm i koa-mongolog --save 热使用? Mongolog可以通过这种方式用作koa中间件。 var mongolog = require ( 'mongolog' ) , koa = require ( 'koa' ) , mongo
mongo docker 镜像
在使用MongoVUE时,开发者和数据库管理员可以提高工作效率,减少因手动操作命令行带来的错误风险。同时,对于初学者来说,MongoVUE是一个很好的学习工具,它以直观的方式展示了MongoDB的基本操作和概念,使得理解和...
Mongo 使用 C++ 开发,提供了以下功能: 1. 面向集合的存储:适合存储对象及 JSON 形式的数据。 Mongo 的存储方式基于面向集合的设计,允许存储大量的 JSON 形式的数据,非常适合实时的插入、更新与查询。 2. 动态...
"mongo_plugin.zip"这个压缩包就是为了解决这个问题,它包含了三个不同版本的MongoDB插件:0.12.0、0.12.1和0.12.2,即mongo4idea。 Mongo4idea是专为PyCharm设计的MongoDB数据库管理插件,它允许用户在PyCharm的...
Mongolog这种方式保存数据: { ip : '...安装npm i mongolog --save 热使用? Mongolog可以通过这种方式用作快速中间件。 var mongoLog = require ( 'mongolog' ) , express = require ( 'express' ) , app = express