【问题标题】:What is the performance difference between Morphia and MongoDB Module in Play framework?Morphia 和 MongoDB Module in Play 框架在性能上有什么区别?
【发布时间】:2011-06-28 08:59:28
【问题描述】:

Morphia 和 MongodDB Module in play 框架都是 MongoDB 的 Java 驱动程序的包装器。

但我注意到 Morphia 在查询时并没有直接给出 Java 列表。它给了我一个名为 Query 的复杂对象。在这个对象上,我必须调用 asList() 方法,这会导致它遍历 Query 中的每个元素并生成一个列表。我认为当我大部分时间需要 Java 列表时,这会对性能产生影响。我想知道为什么 Morphia 在从 mongodb 数据库中获取数据时不生成 List。

【问题讨论】:

    标签: mongodb playframework morphia


    【解决方案1】:

    原因是它可以让您决定您想要数据的方式。如wiki 中所见,您只能通过 get() 检索第一个对象,或通过 asKeyList() 检索 id 列表。 他们承认使用 as List() 对于大型集合来说可能会很昂贵

    据我了解,其背后的原因是重用了 Query 对象。它们允许您构建一个复杂的查询对象(带有过滤器等)并在需要时检索结果。您甚至可以从同一个查询中检索不同的结果集,因为列出的方法(asList 等)不会影响查询对象。

    如果您将多次重用查询对象,并且不会返回大量数据集(无论如何您不应该太高兴地这样做),这可能会很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-05
      • 2022-10-13
      • 1970-01-01
      • 2013-02-27
      相关资源
      最近更新 更多