MongoDB 少对少协会

MongoDB Few-To-Few Association

这是关于 的后续问题。

我来自关系数据库领域,现在正在使用 MongoDB 开发一个新的 NoSQL 项目。

编辑:我正在与 Rails 一起从事这个项目,并决定搬到 Meteor用于原型制作,需要使用MongoDB。我提供以下信息来解释我在处理项目的 Rails 版本时在数据库模式方面的想法。

此项目将基于以下集合:

User
  firstName
  lastName
  emailAddress
  password     

Calendar
  title

Role
  userId
  calendarId

Post
  calendarId
  date
  time
  focus
  format
  blogTitle
  longCopy
  shortCopy
  link
  hashtag
  media
  promotion
  target
  approval
  comment

一个 user 将能够创建和管理多个 calendars,一个 calendar 将允许多个 users 进行协作。

我相信这将是一个 few-to-few(不是 many-to-many)协会,因为:

访问模式如下:

使用 MongoDB 构建此类项目的最佳方式是什么?

设计模式之一是将彼此关联的日历存储在各自的文档中。它会复制日历数据,但用户交互会非常快,因为当他登录时,他可以看到您可以在一个请求中获取的日历。

          {userid : 'X1' , cal = [{} , {}]}

这里唯一的问题是,当有人更新日历时,您必须找到所有包含日历的文档并进行更新。所以在这种模式下读取速度很快,但写入速度有点慢。

使用适当的索引可以更快地找到具有特定调用的文档

       db.collection.update({cal.id : 123},{});