Mongodb对象之间的关系

时间:2010-06-27 17:36:55

标签: mongodb document-oriented-db nosql

我正在尝试使用mongo db实现博客文章存储。

我有两个域实体:

“博客帖子”和“作者”

目前我已将AuthorId属性添加到博客帖子实体。这是存储对象之间关系的正确方法吗?

2 个答案:

答案 0 :(得分:19)

我认为这篇文章适合您http://www.mongodb.org/display/DOCS/Schema+Design

使用案例

客户/订单/订单行项目

  

订单应该是一个集合。客户收藏。 line-items应该是一个嵌入在订单对象中的行项目数组。

博客系统。

  

帖子应该是一个集合。作者可能是一个单独的集合,或者仅仅是一个电子邮件地址的帖子中的字段。注释应该是帖子中的嵌入对象以提高性能。

架构设计基础

Kyle Banker,10gen

  

http://www.10gen.com/presentation/mongosf2011/schemabasics

索引&查询优化 Alvin Richards,企业工程高级总监

  

http://www.10gen.com/presentation/mongosf-2011/mongodb-indexing-query-optimization

**这两个视频是mongoddb上见过的最好的视频imho *

答案 1 :(得分:9)

  

目前我已将AuthorId属性添加到博客帖子实体。这是存储对象之间关系的正确方法吗?

我会说不。您“应该”以非规范化方式在博客文档中存储您需要的所有内容(例如博客文章,评论,标签等)。因此,如果要显示作者姓名,则应将其添加到博客文档中。这将允许使用单个查询获取整个页面的数据,这有点面向文档的数据库。