Реализуйте встроенное пьесу с общей страницей в MongoDB
-
26-10-2019 - |
Вопрос
Я проверил более старый вопрос Это связано с моей встроенной ситуацией под пейджинг. Хотя встроенное петля с нарезанием работает нормально, общие страницы Решение все еще отсутствует, и мне интересно, возможно ли получить общий размер комментариев на стороне сервера.
Есть ли способ запрашивать или подсчитать размер встроенного массива на сервере, не приносящий весь документ в мое приложение и считать его вручную?
Я не против задавать 2 запроса для этого, 1 для подготовки комментария, 1 для получения общего количества комментариев. Если я смогу сделать это в одном запросе, это будет удивительно.
Кстати, я использую Java Driver и Spring-Data MongoDB.
Пожалуйста, поделитесь своими мыслями. Спасибо !
Решение
Лучший/самый быстрый способ получить общее количество встроенных документов - создать дополнительное поле и пересчетить счет после каждого обновления/вставки. Документ будет таким
{
_id: 1,
comments: [],
commentsCount: 5
}
Тогда вы можете просто включить commentsCount
Поле, когда срезает:
//this query will include only 10 comments _id and comments count of root document
db.articles.find({}, {comments:{$slice: [20, 10]}, _id:1, commentsCount: 1})
И на самом деле нет другого способа вычисления общего количества встроенных документов (я не говорю о M/R, потому что это медленно для запросов в реальном времени)