Как настроить схему для песни с несколькими исполнителями? - PullRequest
0 голосов
/ 01 мая 2019

Я создаю приложение для отображения новой музыки.На целевой странице будет раздел, который отображает самую последнюю загруженную музыку.Когда пользователь нажимает на песню, он перенаправляет их в шаблон шоу, который отображает имя исполнителя, название, видео, описание и социальные медиа исполнителя.

Я также хочу раздел, который отображает всех исполнителей, включенных в эту песню.Когда пользователь щелкает имя исполнителя, он отображает страницу со всеми песнями этого исполнителя.Поэтому у меня возникла проблема с созданием схемы, поскольку в одной песне может быть несколько исполнителей.

Моя старая схема была разработана для получения ввода из формы и отображения его без каких-либо связей с художником.

С помощью моих новых схем я пытаюсь создать отношения между художником (-ями) иsong.

Старая схема

const mongoose = require("mongoose");
artistSchema = new mongoose.Schema({
  name: String,
  title: String,
  image: String,
  content: String,
  description: String,
  category: String,
  soundcloud: String,
  scName: String,
  instagram: String,
  igName: String,
  twitter: String,
  twName: String
});
module.exports = mongoose.model("Artist", artistSchema);

Новая схема

const mongoose = require("mongoose");

artistSchema = new mongoose.Schema({
  name: String,
  social: schema.ObjectId,
  music: schema.ObjectId
});
module.exports = mongoose.model("Artist", artistSchema);
const mongoose = require("mongoose");

socialSchema = new mongoose.Schema({
  soundcloud: String,
  scName: String,
  instagram: String,
  igName: String,
  twitter: String,
  twName: String
});
module.exports = mongoose.model("Social", socialSchema);
const mongoose = require("mongoose");

musicSchema = new mongoose.Schema({
  title: String,
  image: String,
  content: String,
  description: String,
  category: String
});
module.exports = mongoose.model("Music", musicSchema);

Пройдя некоторое время по поиску, я нашел документацию, связанную с тем, что япытаюсь сделать.https://gist.github.com/fwielstra/1025038

Поэтому мой вопрос в том, правильно ли настроена моя схема и возникнут ли у меня проблемы, если я продолжу следовать документации Github.

1 Ответ

0 голосов
/ 01 мая 2019

посмотрите, отношения один ко многим. одна песня относится ко многим артистам.

const mongoose = require("mongoose");

musicSchema = new mongoose.Schema({
  title: String,
  image: String,
  content: String,
  description: String,
  category: String,
  artists: [
    {
      type: Schema.Types.ObjectId,
      ref: "Users"
    }
  ]
});
module.exports = mongoose.model("Music", musicSchema);


voters: [
    {
      type: Schema.Types.ObjectId,
      ref: "someModel[artists model]"
    }
]


...