Mongo嵌入文档与单独收集

时间:2020-05-01 14:32:47

标签: database mongodb

我有三个对象:

  1. 用户
  2. 俱乐部
  3. 事件

一个俱乐部有多个活动。用户可以RSVP到多个事件,因此User和Club需要某种方式来跟踪事件。

我想过几种解决问题的方法,但我不知道哪种方法更有效:

在俱乐部内嵌入事件文档

  1. 俱乐部将具有事件对象的数组字段
  2. (问题?)为了使用户能够查询已回复RSVP的事件,他们必须进行嵌套搜索:
for each club in clubs:
  for each event in club:
    event.rsvps.includes(user)

我不确定这些类型的查询对mongo的优化程度如何。

创建单独的事件和RSVP集合

  1. 每个事件将作为事件集合中的单独文件出现,并带有ClubId作为对其所属俱乐部的引用
  2. 将使用单独的RSVP集合将UserId与EventId链接,以将事件标记为“ RSVPd”
  3. (好吗?)RSVP查询效率更高。
  4. (问题?)由于现在有两个新集合,使模型变得相当复杂。

有人知道更好的方法吗?

0 个答案:

没有答案
相关问题