繁体   English   中英

在 Play 框架中,Morphia 和 MongoDB 模块的性能有何不同?

[英]What is the performance difference between Morphia and MongoDB Module in Play framework?

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM