mongodb 映射实体_MongoDB,Java和对象关系映射

mongodb 映射实体

MongoDB简介

当今的NoSQL格局包括许多非常有能力的竞争者,它们以多种不同方式解决大数据问题。 这些竞争者之一就是功能强大的MongoDB 。 MongoDB是一种面向文档的无模式存储解决方案,使用JSON样式的文档来表示,查询和修改数据。

MongoDB有据可查,易于安装和设置,并且易于扩展。 它支持复制,分片,索引和映射/归约等熟悉的概念。 MongoDB开源社区非常庞大且活跃。 MongoDB拥有许多大型和高流量的生产部署,包括迪士尼,Craigslist,Foursquare,Github和SourceForge。 MongoDB是一个10gen.com创建和维护的开源项目,该公司是由DoubleClick的前高管创建的。 除了出色的社区支持(10gen参与其中)之外,10gen还提供商业支持。

MongoDB和NoSQL:陷阱和优势

MongoDB的优势在于它是一个非常易于接近的NoSQL解决方案。 当我第一次进入NoSQL数据库世界时,我抽样了许多基于Java的解决方案,发现自己花了很多时间弄清楚什么是列族,Hadoop与HBase的关系以及ZooKeeper到底是什么? 当我最终弄清楚了所有内容后,还发现诸如Cassandra和HBase之类的产品显然是对NoSQL难题非常可靠且令人鼓舞的解决方案。 与其他解决方案相比,在开始编写代码之前,MongoDB易于掌握,需要克服的概念较少。

像任何软件一样,MongoDB显然并非没有缺陷。 在MongoDB期间,我遇到了一些我认为是“ Gotchas”的事情:

  • 不要将其视为RDBMS。 这看起来似乎很明显,但是MongoDB使得创建和执行复杂的查询变得如此容易,以至于在尝试将其用于实时查询时,您可能会发现自己陷入了麻烦,并遇到了性能问题。 ( 就像我一样
  • MongoDB的索引是二进制树。 如果您不了解什么是b树,则可能应该查找一下 。 提供查询条件的顺序必须与创建索引的顺序匹配。
  • 仔细设计索引。 这与上面的B树项目符号点相关。 我的前几个索引包含文档中的许多字段,您知道-“以防万一”我需要查询它们。 不要犯同样的错误。 我在一个很小的馆藏中(约1000万条记录)的索引之一增长到超过17GB,比馆藏本身还大。 如果数组字段将包含数百或数千个条目,则可能不希望对其进行索引。
  • MongoDB采用了一种非常有趣的方法来处理NoSQL。 它使用BSON进行存储,使用JSON进行表示,并使用JavaScript进行管理和Map / Reduce。 其结果是一样奇怪的小问题, 这一个 (破等号运营商NumberLong)绑定,现在又突然出现,而MongoDB的年龄赶上了比较流行的大数据解决方案。

MongoDB,控制台和驱动程序

MongoDB的管理通常是使用JavaScript客户端控制台应用程序完成的,该应用程序使诸如数据迁移和操作之类的复杂任务变得轻而易举,并使用JavaScript编程语言进行了完全编程。 在本文中,我们将显示使用此控制台的示例。 如今,MongoDB社区将其称为驱动程序,提供了无数的生产质量的MongoDB客户。 通常,每种编程语言都有一个驱动程序,并且涵盖了所有流行的编程语言以及一些不太流行的语言。 本文介绍了如何将Java驱动程序用于MongoDB,并将其与使用ORM库(MJORM)进行比较。

引入MJORM:针对MongoDB的ORM解决方案

对象关系映射是解决NoSQL数据存储的最新趋势已带给应用程序程序员生命的众多有趣问题之一。 对象关系映射(ORM)是指将传统上存储在RDBMS中的持久数据映射到应用程序使用的对象。 这使得处理数据对于应用程序所使用的语言更加流畅和自然。

MongoDB的面向文档的体系结构非常适合ORM,因为它存储的文档本质上是对象本身。 不幸的是,没有可用于MongoDB的Java ORM库很多,但有一些类似的对象,例如

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值