я две модели определяется следующим образом:Update 2 разных коллекций одновременно
var OrganizationSchema = new mongoose.Schema({
users: [mongoose.Schema.Types.ObjectId]
});
и
var UserSchema = new mongoose.Schema({
organizations: [mongoose.Schema.types.ObjectId]
});
Когда пользователь хочет присоединиться к организации, мне нужно обновить и коллекцию организации и пользователя коллекция. Я хочу знать, что является лучшим способом достичь этого? Стоит ли рассматривать случай, когда один запрос обновления терпит неудачу? В настоящее время я делаю что-то вроде этого (где организация представляет собой набор экземпляр модели организации):
User.findByIdAndUpdate(req.userSession.userId, { $push: { organizations: organization.id } }, function (err){
if (err)
{
// server error
console.log(err);
}
else
{
organization.users.push(req.userSession.userId);
organization.save(function (err){
if (err)
{
// server error we need to cancel
User.findByIdAndUpdate(req.userSession.userId, { $pull: { organizations: organization.id } }, function (err){
if (err)
{
// we got a problem one collection updated and not the other one !!
console.log(err);
}
});
}
else
{
// success
}
});
}
});
Проблема: если мой второй метод обновления не в состоянии я в конечном итоге с одной коллекции обновляется и не другой ? Есть ли способ убедиться, что они оба обновлены?
У меня почти такой же вопрос. Будем надеяться, что мы получим ответ. –