Реализуйте встроенное пьесу с общей страницей в MongoDB

StackOverflow https://stackoverflow.com/questions/9314056

Вопрос

Я проверил более старый вопрос Это связано с моей встроенной ситуацией под пейджинг. Хотя встроенное петля с нарезанием работает нормально, общие страницы Решение все еще отсутствует, и мне интересно, возможно ли получить общий размер комментариев на стороне сервера.

Есть ли способ запрашивать или подсчитать размер встроенного массива на сервере, не приносящий весь документ в мое приложение и считать его вручную?

Я не против задавать 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, потому что это медленно для запросов в реальном времени)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top