Как разбить сложные запросы на 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')
    }
}
Другие вопросы по тегам