我试图在play framework 2.0.1视图中迭代mongo DBCursor。但是,没有列出任何内容。理想情况下,我想分页光标,但即使我能够列出光标中的所有对象,也没关系。
这是我正在做的事情。 在我的控制器中,我查询Mongo DB并渲染DBCursor。日志表明游标不为空。
然后在视图中我有以下内容:
@(cursor: com.mongodb.DBCursor)
@main("Title") {
<div id="objects" class="content">
<h2>Objects</h2>
@if(cursor.count() == 0) {
There are currently no objects in the data base.
} else {
@while(cursor.hasNext()) {
@cursor.next().get("name");
}
}
</div>
}
不幸的是,除了呈现页面时的标题之外,没有列出任何内容。
有趣的是,如果我省略@while(cursor.hasNext())
并仅从光标输出第一个对象,那么它将在页面上呈现。
显然有些事情是错的。那么,是否可以在视图中渲染(和/或分页)DBCursor?
谢谢!
答案 0 :(得分:3)
在scala模板中可能没有@while!?
这种工作不打算在视图中完成。视图用于渲染,而控制器用于逻辑和访问数据库。考虑将DBObject解析为控制器中的列表或数组,并使用@for在视图中迭代它。
对于分页,请使用以下内容:
myCollection.find(query).skip(40).limit(20);