【问题标题】:Custom Type Mapping In MongoDBMongoDB 中的自定义类型映射
【发布时间】:2013-10-17 13:05:50
【问题描述】:

首先让我说我的目标是实现最快的读取操作,所以如果您在我的代码/描述中发现可以帮助我实现这一目标的内容,请告诉我。

我有一个从 MongoDB 中提取对象的只读 Web 应用程序。但是,我将返回给用户的响应对象不需要所有数据。就目前而言,流程如下:

  • 从 mongo 中检索信息
  • 将该信息映射到对象
  • 使用访问器方法将值从所述对象传输到响应对象。
  • 将响应对象返回给用户。

我想通过将来自 mongo 的数据直接映射到响应对象来组合第 1 步和第 2 步。

我已经研究了DefaultMongoTypeMapper 和它使用的所有类,但是在我确定它是正确的方向之前,我还需要思考很多。

除了我上面列出的内容之外,我还有其他一些问题。一个是存储在 Mongo 中的对象没有 _class 字段,因为它们是原始数据(据我所知,类型映射器使用该字段来确定要映射到的类)。这样做的好处是,来自数据库的所有内容都将映射到同一个对象,因此我们可以假设要使用哪个类。

过去有没有人做过类似的事情,或者对如何做到这一点有任何建议?

非常感谢。

【问题讨论】:

    标签: spring-data-mongodb mongodb-java


    【解决方案1】:

    如果您正在寻找最快的读取操作,可能首先要看的是实际读取的速度,以及使用 MongoDB 的网络传输速度。 Java 中的处理(在合理范围内)将占总请求时间的非常低的百分比。 您可能已经这样做了,但请查看来自 MongoDB 的原始读取(索引、查询、记录数、数据库架构、配置等)

    对于 java 处理,它非常依赖于您想要对结果做什么。 我建议您为 java 处理的各种选项创建一些测试,这可能是 CPU 限制的。如果您可以创建一次处理多条记录的测试,则可以查看每条记录的性能特征。

    您能否手动编写代码以从文档中创建 POJO?这可能是最高效的。 否则像morphia这样的ODM https://code.google.com/p/morphia/

    如果您已经熟悉/使用 Spring(如上所述)请参阅:http://projects.spring.io/spring-data-mongodb/ 或者看看:http://spring.io/guides/gs/accessing-data-mongo/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2011-10-15
      • 2011-01-24
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      相关资源
      最近更新 更多