我使用快递,护照和猫鼬。我不知道为什么,但下面的代码将newTaxReturn._id
两次推送到user.taxReturnIds
字段。如果我删除user.save().catch(() => {})
行,则会正确推送newTaxReturn._id
,即只推送一次。用户参数来自护照。
问题:
const createTaxReturn = ({ user }) => {
const newTaxReturn = new TaxReturn({ userId: user._id })
user.taxReturnIds.push(newTaxReturn._id)
user.save().catch(() => {})
return newTaxReturn.save().catch(() => {})
}
架构:
const User = new mongoose.Schema({
taxReturnIds: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'TaxReturn',
}],
})
const TaxReturn = new mongoose.Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
},
})
答案 0 :(得分:1)
在你回来的时候,你也会调用.save()这样复制和删除时的单个输入
user.save().catch(() => {})
将你的回报放在.then或.catch中以从mongo
中检索回复user.save().catch(error => { if (error) return error })