Как разбить сложные запросы на mongoDB в Grails?
У меня есть три класса домена Автор, Комментарий и Книга:
class Author {
String name
static hasMany = [books: Book, comments: Comment]
}
class Book {
static belongsTo = [author: Author]
static hasMany = [comments: Comment]
}
class Comment {
static belongsTo = [book: Book, author: Author]
}
У меня есть следующий запрос mongoDB, чтобы найти все книги, которые имеют комментарии от данного автора.
Comment.findAllByAuthor(author1).collect {
it.book
}.unique().findAll {
it != null
}
Как я могу использовать нумерацию страниц для этого запроса, т. Е. Чтобы разбить на страницы все книги?
1 ответ
Используйте критерий запроса с книгой вместо комментария:
def c = Book.createCriteria()
def PaginatedBookList = c.list(max: params.max, offset: params.offset) {
and{
eq('author',author1)
isNotNull('comments')
}
}