0
我想保存我的name
字段的较低版本,以便我可以在名称字段上执行高效的不区分大小写的搜索。由于我正在使用外部API,因此我还将未修改的响应对象存储到我的数据库中。使用猫鼬钩保存附加字段
我的问题:
我怎样才能挽救我name
领域的下套管的版本,而无需修改API响应(我还是想保存新文档时的响应对象传递给我的模型)。
假人模型:
const userSchema = mongoose.Schema({
name: {
type: String,
required: true,
index: true,
},
name_lowercased: {
type: String,
required: true,
index: true,
}
})
我认为这是可能的使用pre('save')
或post('save')
挂钩,但我不知道我怎么能修改在钩保存文档。
看来它不是为我工作。我认为这个钩子甚至没有被调用,可能是因为我使用了upsert?还有另一种方法吗? – kentor
我相信pre-save钩子不会在更新方法上调用,所以您将需要使用'find()',然后更新name属性和'save()'。这应该然后运行预保存。 –