на основе этого вложенных документов Mongoose / DocumentsArrays id
я пытаюсь реализовать условие в цикле внутри цикла. В конце новый «tosave» объект комментариев должен содержать _id из BlogPost, основанный на «где a_id = b_id».
Я использую ноды, экспрессы и мангусты.
У меня есть многострочная форма с несколькими блог-постами, а блог-пост может иметь несколько комментариев.
На бэкэнде у меня есть 2 массива -> BlogPosts и комментарии вроде этого:
BlogPosts: [{ a_id: '1', name: 'name1' },
{ a_id: '2', name: 'name2' },
{ a_id: '3', name: 'name3' }],
Comments: [{ b_id: '1', name: 'comment for BlogPost name1' },
{ b_id: '1', name: 'other comment for BlogPost name1' },
{ b_id: '3', name: 'comment for BlogPost name3' }],
Мне нужен _id из блогового документа внутри каждого комментария, чтобы ссылаться между комментариями и постами блога.
Я зацикливаюсь на BlogPosts так:
var new_post_to_save = [];
for(var i=0; i<req.body.blogposts.length;i++) {
var newpost = new BlogPost();
console.log('blogpost nr : ' + [i] + ' has new _id: ' + newpost._id );
newpost.name = req.body.blogposts[i].name,
newpost.a_id = req.body.blogposts[i].a_id
new_post_to_save.push(newpost);
},
Это работает нормально. Я получил новый массив "new_post_to_save", который я могу легко сохранить.
Теперь я пытаюсь выполнить цикл внутри BlogPosts, чтобы дать каждому комментарию поле _id из вновь созданного объекта "newpost".
Что я пытаюсь - но это не удалось .. Он соответствует всем Комментариям ко всем BlogPosts.
var new_post_to_save = [];
var new_comment_to_save = [];
for(var i=0; i<req.body.blogposts.length;i++) {
var newpost = new BlogPost();
console.log('blogpost nr : ' + [i] + ' has new _id: ' + newpost._id );
newpost.name = req.body.blogposts[i].name,
newpost.a_id = req.body.blogposts[i].a_id
// here a loop to create x Comments with the _id from newpost and
// the condition: IF a_id = b_id
// then create new Comment and get die _id from his Blogpost
for(var f=0; f<req.body.comments.length;f++) {
if (newpost.a_id = req.body.comments[f].b_id)
console.log(' Yea ! Comment ' + [f] + ' matches Blogpost Nr. ' + [i]);
var newcomment = new CommentModel();
newcomment.id_newpost = newpost._id,
newcomment.name = req.body.comments[f].name,
newcomment.b_id = req.body.comments[f].b_id,
}; // end if
}; // end for
new_comment_to_save.push(newcomment);
new_post_to_save.push(newpost);
}, // end for
Это мой первый вопрос здесь.
Есть идеи? Большое спасибо