Сложный запрос MongoDb: Как запросить некоторые «Страницы» из «Книг», принадлежащих «Пользователю» - PullRequest
0 голосов
/ 20 марта 2012

Я разработал схемы так же, как реляционная база данных. Вот так:

User
  user_id: String
  ...

Book
  user_id: String
  book_id: String
  ...

Page
  book_id: String
  page_id: String
  ...

Поскольку у пользователя может быть много книг, а у книги много страниц.

Теперь я хочу запросить первые 5 страниц первых 25 книг пользователя. Как бы я это сделал в MongoDB?

1 Ответ

3 голосов
/ 20 марта 2012

Ну, у MongoDB на самом деле нет «реляционных» функций, как у MySQL / etc. Таким образом, вам нужно получить данные, используя несколько запросов, сначала получив идентификатор вашего пользователя, затем найдя книги типа db.books.find({ "user_id": uid }).limit(25), а затем используйте их для просмотра каждой книги, чтобы аналогичным образом найти первые 5 страниц каждой.

В качестве альтернативы вы могли бы встраивать страницы в книгу, но затем мы попадаем в совершенно другую историю о том, как оптимизировать запросы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...