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

Posted

技术标签:

【中文标题】MongoDb复杂查询:如何从属于“用户”的“书”中查询一些“页面”【英文标题】:MongoDb complex query: How to query some "Page"s out of "Book"s belonging to a "User" 【发布时间】:2012-04-04 10:13:11 【问题描述】:

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

User
  user_id: String
  ...

Book
  user_id: String
  book_id: String
  ...

Page
  book_id: String
  page_id: String
  ...

因为一个用户可以有很多很多书,而一本书有很多页。

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

【问题讨论】:

【参考方案1】:

嗯,MongoDB 并没有像 mysql/etc 这样的“关系”特性。因此,您需要使用多个查询来获取数据,首先获取您的用户 id,然后查找像 db.books.find( "user_id": uid ).limit(25) 这样的书籍,然后使用它浏览每本书以类似地找到每本书的前 5 页。

或者,您可以将页面嵌入到书中,但随后我们将进入另一个关于如何优化查询的故事:)

【讨论】:

以上是关于MongoDb复杂查询:如何从属于“用户”的“书”中查询一些“页面”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Powershell 进行复杂查询 MongoDB

Spring Boot MongoDb 复杂查询

如何组合 MongoDB 查找查询的输出?

[小黄书后台]mongodb和用户管理

从两个数据库集合(Mongoose/MongoDB)中查询和匹配

BIRT 如何连接 MongoDB