#node.js #mongodb #mongoose #nosql
#node.js #mongodb #мангуст #nosql
Вопрос:
Моя схема базы данных выглядит следующим образом :-
const CategorySchema = new Schema({
title: {
type: String,
required: true,
unique: true,
},
albums: [
{
album: {
type: mongoose.Schema.Types.ObjectId,
ref: "albums",
},
},
],
});
const AlbumSchema = new Schema({
albumName: {
type: String,
required: true,
unique: true,
},
by: {
type: String,
required: true,
},
albumImageUri: {
type: String,
required: true,
},
artistHeadline: {
type: String,
required: true,
},
songs: [
{
song: {
type: mongoose.Schema.Types.ObjectId,
ref: "songs",
},
},
],
});
const SongSchema = new Schema({
songName: {
type: String,
required: true,
},
songImageUri: {
type: String,
required: true,
},
songAudioUri: {
type: String,
required: true,
},
});
Итак, есть категория песен, внутри которой она содержит альбомы и внутри которой она содержит песни.
Я хочу получить все категории и заполнить каждый элемент внутри массива альбомов.
Я не хочу использовать цикл для достижения того же самого
Ответ №1:
При использовании запроса get в поле заполнить массив укажите путь и все элементы, которые вы хотите получить, в поле выбрать. Это должно выглядеть примерно так.
"populate": [{
"path": 'albums',
"select": 'albumName by albumImageUri artistHeadline songs'
}]
Комментарии:
1. Я по ошибке добавил объект внутри объекта в массив объектов альбома в схеме категорий