在Play框架中,Morphia和MongoDB模块之间的性能差异是什么?
play框架中的Morphia和MongoDB模块都是MongoDB Java驱动程序的包装器在Play框架中,Morphia和MongoDB模块之间的性能差异是什么?,mongodb,playframework,morphia,Mongodb,Playframework,Morphia,play框架中的Morphia和MongoDB模块都是MongoDB Java驱动程序的包装器 但我注意到Morphia在查询时并没有直接给出Java列表。它给了我一个叫做查询的复杂对象。在这个对象上,我必须调用方法asList(),这会使它迭代查询中的每个元素并生成一个列表。我认为在大多数情况下,当我需要Java列表时,这会对性能产生影响。我想知道为什么Morphia在从mongodb数据库获取数据时不生成列表。原因是它可以让您决定如何使用数据。如中所示,您只能通过get()检索第一个对象,或
但我注意到Morphia在查询时并没有直接给出Java列表。它给了我一个叫做查询的复杂对象。在这个对象上,我必须调用方法asList(),这会使它迭代查询中的每个元素并生成一个列表。我认为在大多数情况下,当我需要Java列表时,这会对性能产生影响。我想知道为什么Morphia在从mongodb数据库获取数据时不生成列表。原因是它可以让您决定如何使用数据。如中所示,您只能通过get()检索第一个对象,或者通过asKeyList()检索id列表。他们承认,对于大型集合,使用as List()可能代价高昂 据我所知,背后的原因是重用查询对象。它们允许您构建一个复杂的查询对象(带有过滤器等),并在需要时检索结果。您甚至可以从同一查询中检索不同的结果集,因为列出的方法(asList等)不会影响查询对象 如果您将大量重用查询对象,并且不会返回大量数据集(无论如何,您不应该这么做),那么这将非常有用