mongodb - 建模 2 个具有关系的文档

mongodb - modeling 2 documents with relationship

我正在为我的文档建模,但现在遇到了问题:

在我的应用程序中,用户有一个他们可以接受的报价列表。所以我有两个文档,"users" 和 "offers"。我想向我的用户展示他们当时接受了哪些优惠。但是合作伙伴(插入报价的人)也应该看到哪个用户在什么时间接受了哪个报价。

我的第一个想法是在两个文档中使用嵌入式数据:

用户:

 offers: {
    accepted: [{
      offer: {
        type: Schema.Types.ObjectId,
        ref: 'Offer'
      },
      time: { type: Date, default: Date.now() }
    }]
  }

优惠:

 costumer: {
    accepted: [{
        user: {
            type: Schema.Types.ObjectId,
            ref: 'User'
        },
        time: { type: Date, default: Date.now() }
    }]
 }

亲: 方便查询

缺点: 重复数据

-

我的另一个想法是为此创建一个新文档:

接受的报价:

offer: {
        type: Schema.Types.ObjectId,
        ref: 'Offer'
      },
user: {
        type: Schema.Types.ObjectId,
        ref: 'User'
      },
time: { type: Date, default: Date.now() }

哪种解决方案会更好,或者有没有更好的方法?

谢谢

我的建议是在两个文档中嵌入数据。

在MongoDB中,数据模式应基于应用程序的要求。重复数据不像关系数据库那样是一个严重的问题。在这种情况下,User文档旨在容纳用户的应用程序,Offer文档旨在容纳合作伙伴的应用程序。