node.js - Can't save object pushed to array -
node.js - Can't save object pushed to array -
hi have unusual issue mongoose.
group.findbyid(req.params.group_id, function(err, group){ user.findone(req.body, function(err, user){ group.users.push(user); user.groups.push(group); group.save(); user.save(); res.json({group: group, user: user}); homecoming true; }); });
i seek create double way relation between user , group. user pushed group.users array , saved perfectly. issue appear when seek save grouping in user.groups array. there no action on mongo side until seek run action again. old element saved properly, , new 1 still don't saved. on express side seems fine, , objects returned front end end valid.
here have visualization of problem
> grouping user group.users in database user.groups in database > group1 user1 [user1] [] > group2 user2 [user1, user2] [group1] > group3 user3 [user1, user2, user3] [group1, group2]
i hope understand key of issue.
do have advice of how prepare problem?
it due async operation of save
need nest them (assuming using refs array subdocuments):
group.findbyid(req.params.group_id, function(err, group){ user.findone(req.body, function(err, user){ group.users.push(user); group.save(function (err, group) { user.groups.push(group); user.save(function (err, group) { res.json({group: group, user: user}); }); }); }); });
i using library async speed process since 2 queries find grouping , user aren't dependent on each other.
node.js mongoose
Comments
Post a Comment