MongoDb复杂查询:如何查询属于“用户”的“书”中的某些“页面”

时间:2012-03-19 21:44:54

标签: sql mongodb mongoose database nosql

我设计的模式很像关系数据库。像这样:

User
  user_id: String
  ...

Book
  user_id: String
  book_id: String
  ...

Page
  book_id: String
  page_id: String
  ...

因为用户可以拥有许多书籍,而书籍有很多页面。

现在我想查询用户前25本书的前5页。我如何在MongoDB中做到这一点?

1 个答案:

答案 0 :(得分:3)

嗯,MongoDB并没有像MySQL /等那样的'关系'功能。因此,您需要先使用多个查询来获取数据,方法是首先获取用户的ID,然后查找db.books.find({ "user_id": uid }).limit(25)之类的图书,然后使用它来浏览每本书,同样找到每个图书的前5页。

或者你可以将这些页面嵌入到书中,但接下来我们将介绍如何优化查询:*