Допустим, у меня есть некоторые данные, которые я получаю от API, который хочу сохранить. Все вместе, есть 4 модели, на которые есть ссылки внутри друг друга, A> B> C> D, и схемы определены так:
// Schemas
const A = new Schema({
username: String,
password: String,
B: [B.schema],
});
const B = new Schema({
name: String,
C: C.schema,
});
const C = new Schema({
a: [D.schema],
b: [D.schema],
c: [D.schema],
});
const D = new Schema({
name: String,
});
Я инициализирую A и B отдельно, как A создается только для моего приложения, а я сохраняю экземпляр B в A после вызова внешнего API. Однако, когда я инициализирую B, у меня уже будут все данные из C и D, которые мне понадобятся (при условии, что при получении данных ошибок нет).
Итак, при инициализации экземпляра B будут ли уже встроенные экземпляры C и D автоматически инициализироваться как экземпляры моих C и модели D, поскольку они будут соответствовать тому, как я определил схемы? Или мне придется использовать вложенные циклы for для инициализации каждого элемента по отдельности?
Например:
const apiResponse = {
name: 'example',
C: {
a: [D, D, D],
b: [D, D, D],
c: [D, D, D]
}
}
// To initialize, do I option 1:
const newB = new db.B(apiResponse)
// Or do I do something like option 2:
const C = {};
for (key in apiResponse.C) {
apiResponse.C[key].forEach(item => C[key].push(new db.D(item)));
}
const newC = new db.C(C);
const newB = new db.B({ name: apiResponse.name, C: newC })