mongodb - 在 Mongo 中对多对多连接进行数据建模?

标签 mongodb database-design mongoose database

因此,在关系数据库中,我可能有 2 个表,“User”和“Event”,它们具有多对多关系,因此有一个连接表“UsersEvents”。现在,除了 2 个 ID 之外,我还想在此表中存储一些数据,例如名为“Enjoyed”的 bool 值。

据我了解,在 Mongo 中,您将在表之间创建嵌入链接,例如使用 Mongoose

var Person = new Schema({
    email: String,
    events: [EventFeedback]
})

var Event = new Schema({ ... });

var EventFeedback = new Schema({
    person: Schema.ObjectId,
    event: Schema.ObjectId,
    enjoyed: Boolean
});

但这真的是建模的最佳方式吗?我本以为 EventFeedback 中的所有内容都可以在 Person.events 中,这将由 Event._id 索引?或者这可能只是 Mongoose 的一个限制?

最佳答案

试试这个方法

var EventScheme = new Schema({ ... });  
mongoose.model('Event', EventScheme);

var PersonScheme = new Schema({
  email: String,
  events: [{
    event: {
      type: mongoose.Schema.ObjectId,
      ref: 'Event'
    },
    enjoyed: Boolean
  }]
});

关于mongodb - 在 Mongo 中对多对多连接进行数据建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720464/

相关文章:

java - 从 MongoDB 删除时出现 com.mongodb.MongoTimeoutException

node.js - 如何在更新 Mongoose 上推送对象数组

database - 如何解决A/B key问题?

database - Django:数据库设计的最佳实践

mysql - 如何查找共享相同组合索引的行?

node.js - 通过 _id 转换错误手动删除 connect-mongo session

javascript - Expressjs/Node.js - res.redirect() 未加载页面

java - 如何访问Database类实例?

arrays - 查询 Mongodb 对象数组的第一个元素的总和

mongodb - 撤消 convertToCapped 到集合