MongoDB 的 Morphia、Mongo4j 和 Spring 数据如何比较? [关闭]

Posted

技术标签:

【中文标题】MongoDB 的 Morphia、Mongo4j 和 Spring 数据如何比较? [关闭]【英文标题】:How do Morphia, Mongo4j and Spring data for MongoDB compare? [closed] 【发布时间】:2011-08-15 18:43:16 【问题描述】:

我对它们之间的比较感兴趣,什么更成熟,功能更多,更适合某些用例。

我自己的用例是创建一个实时监控服务(想想 Chartbeat),但如果您可以谈论其他用例,请这样做 - 毕竟这些问答可能会引起其他人的兴趣。

【问题讨论】:

【参考方案1】:

https://github.com/impetus-opensource/Kundera/wiki/Kundera-Mongo-performance 性能表在这里编译。 Kundera 是完全符合 JPA2.0 的解决方案,并提供更强大的接口、易于实现和功能集。

-Vivek

【讨论】:

【参考方案2】:

如果您正在寻找易于开发和良好的性能,Kundera 是另一种选择。它符合 JPA。

【讨论】:

严肃的问题:为什么世界上会有人尝试通过 JPA 使用 NoSQL 存储,JPA 是一种旨在针对关系存储的标准? JPA 虽然是为关系数据库编写的,但它是一个强大的规范,可能非常适合许多应用程序。以 cassandra 中的 Super Columns 为例。它非常特定于 NoSQL,但可以表示为 JPA 的 @Embedded 属性。在最近的过去,NoSQL 已经尝试摆脱无模式设计。我的观点是应该努力为 NoSQL 高级客户端制定规范。 JPA 在 NoSQL 存储上没有多大意义的原因有很多。首先,您不使用 JPA,而仅使用配置文件。大多数 NoSQL 数据库都没有事务,那么您希望 tx.rollback() 会发生什么? @Table 或连接在 NoSQL 世界中也没有意义。另一方面:您将如何实现特定于商店的行为,例如地理空间内容、图遍历、map-reduce?无论如何,那必须是专有的。那么,为什么一开始就从可能是两全其美的东西(只有一半的 JPA 并且不支持特殊的 NoSQL 功能)开始呢?【参考方案3】:

Morphia 是必经之路。非常稳定,非常好的 Play 集成,如果您需要更大的扭矩,可以访问所有 Mongo 驱动程序功能。参考解析、实体嵌入按预期工作。您还可以获得生命周期注释,这对于样板持久性代码(时间戳?)非常有用

【讨论】:

【参考方案4】:

Morphia 可能是三者中最稳定的一个。我最近没有听到太多关于 Mongo4j 的消息——可能已经被放弃了。由于 hades 项目,我个人喜欢 spring-data……您不需要实现 DAO。您只需编写接口,spring 数据会自动提供给您。然而,在我最初的试用中,Spring Data Mongodb 的实现似乎有点问题。如果您有困难的日期并且正在开发高质量的产品,那么选择 Morphia 可能是明智的。

【讨论】:

以上是关于MongoDB 的 Morphia、Mongo4j 和 Spring 数据如何比较? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Morphia - mongodb之ORM框架

如何处理 MongoDB / Morphia 中的查询迁移?

Morphia:将MongoDb文档检索为Java对象

morphia操作mongodb

基于Morphia实现MongoDB按小时按天聚合操作

Spring Data MongoDB 五:进阶文档查询(分页Morphia)