在 MongoDB 中建立多对多关系的最佳方法

时间:2021-06-10 04:30:51

标签: node.js mongodb mongoose many-to-many

我有两个 MongoDB 模型

音乐家和专辑

一张音乐专辑可以由一个或多个音乐家演唱/播放。

一位音乐家可以为多张音乐专辑做出贡献(唱歌或演奏)。

音乐专辑模型:

  albumName: {
    type: String
  },
  releaseDate: {
    type: Date
  },
  genre: {
    type: String
  },
  price: {
    type: Number
  },
  description: {
    type: String
  },
  songs: {
    type: Array
  }

音乐人模型:

  artistName: {
    type: String
  },
  artist_type: {
    type: String
  }

您能否提出一种在 MongoDB 中实现多对多关系的方法?

谢谢

1 个答案:

答案 0 :(得分:0)

由于 MongoDB 是一个 NoSql 数据库,因此期望从它那里获得 ORM 功能是不方便的。

不过,您可以使用不同的方式实现它。

您可以将 musician 模型的对象数组保存到音乐专辑模型中,如下所示。

  albumName: {
    type: String
  },
  releaseDate: {
    type: Date
  },
  genre: {
    type: String
  },
  price: {
    type: Number
  },
  description: {
    type: String
  },
  songs: {
    type: Array
  },
  musician : {
    type: Array
  }

音乐家领域的样子:

[
 {
  "artistName" : "Swift taylor",
  "artist_type" : "english"
 },
 {
  "artistName" : "Justin Bieber",
  "artist_type" : "english"
 }
]