如果我有一个Schema,它有一个对另一个Schema的引用数组,有没有办法可以用一个端点更新这两个Document?
这是我的架构:
CompanySchema = new Schema({
addresses: [{
type: Schema.Types.ObjectId,
ref: 'Address'
}]
});
我想将Company
与Address
对象一起发送到/companies/:id/edit
。使用此终结点,我想同时修改Company
和Address
上的属性。
在Rails
中,您可以使用类似嵌套属性的内容进行一次大UPDATE
次调用,并且会更新Company
和更新或添加{ {1}}也是。
知道如何在Address
中执行此操作?
答案 0 :(得分:1)
Mongoose
(issue)
但是有插件(例如:cascading-relations)在嵌套populate objects上实现此行为。
请记住,mongodb是not a fully transactional database,并且使用各种insert()/ update()op调用实现“大保存”,并且您(或插件)必须处理错误和回滚。
级联保存示例:
company.save()
.then(() => Promise.all(company.addresses.map(address => {
/* update fkeys if needed */
return address.save()
}))
.catch(err => console.error('something went wrong...', err))