Исходя из ваших схем, я заключаю, что у вас есть планы использовать только одну модель (модель «Альбом» для коллекции альбомов).Вы уже создали схему для «Песни».Таким образом, вместо повторения полей в коллекции «Альбом», вложите схему «Песни» в схему «Альбом».Вы можете сделать это следующим образом.
const mongoose = require("mongoose");
var Song = mongoose.Schema('Songs', {
album: String,
title: String,
artist: String,
genre: String,
year: Number,
src: String
});
const AlbumSchema = new Schema({
album: String,
songs: [Song]
});
И затем вы можете создать свою 'модель альбома', например,
const Album = module.exports = mongoose.model("Album", AlbumSchema);
Затем, где бы (возможно, контроллер!) Вы ни хотели создатьновая песня, вы можете сделать это,
let newSong = {
album: 'xxx',
title: 'xxx',
artist: 'xxx',
genre: 'xxx',
year: 'xxx',
src: 'xxx'
}
Album.update(
{ _id: album._id },
{ $push: { songs: newSong } }
);