吗啡。如何从大数据存储中获取部分信息

时间:2013-01-06 12:21:37

标签: spring mongodb morphia

我对Morphia有些问题。 有人能帮助我吗?

我在Spring + MongoDB上写关于电影和名人的网络项目。 我有实体类类型:

@Entity(value="genres")
public class Genre implements IGenre {

    @Id
    @Indexed
    private ObjectId id;

    @Indexed
    private String name;

    private String description;

    private long quantity;

    private Set <IMovie> movies;

    //getters and setters

}

实体类电影:

@Entity(value="movies")
public class Movie implements IMovie {

    @Id
    @Indexed
    private ObjectId id;

    @Indexed
    private String originalTitle;

    private String year;

    private Set <IGenre> genres;

    // getters and setters

}

我有30种类型。例如其中一个:喜剧。 我还有25万部喜剧。 现在我想通过流派=喜剧来做电影分页。 如何才能从所有喜剧中获得20条记录。 如果我使用@Embedded或@Reference注释,我仍然会立即获得整个列表。在控制器中使用它很重要。

1 个答案:

答案 0 :(得分:0)

我对Mongo不太熟悉,但看起来你需要在这里实现自定义查询。无论你做什么,你都需要为你的页面开始,以及页面大小(在你的情况下为20)。

您可以通过在查询中组合.offset(page_start)和.limit(page_size)来在Morphia中进行分页。首先,您将创建一个查询以获取属于某种类型的电影,然后应用分页。

看起来它是使用Spring http://static.springsource.org/spring-data/data-mongodb/docs/1.0.0.RELEASE/reference/html/#repositories.special-parameters

中的存储库处理的

您使用Pageable实现来传递分页数据,而不必担心自己进行偏移和限制调用。这是&#34; Web分页的一个例子&#34;进一步在文档中。

希望这有帮助!