javascript - 如何更新子级,删除父级时父级的引用?
问题描述
我提出这个问题是因为我在研究时很难提出正确的问题。我希望清楚:
我有 2 个架构:
家长 [团队]:
const EquipaSchema = new mongoose.Schema({
trab1: {
type: Schema.Types.ObjectId,
required: true,
ref: 'Trab'
},
trab2: {
type: Schema.Types.ObjectId,
required: true,
ref: 'Trab'
},
trab3: {
type: Schema.Types.ObjectId,
required: true,
ref: 'Trab'
},
teamName: {
type: String,
required: true
},
marcsEquipa: [{
type: Schema.Types.ObjectId,
ref: 'Marcacao'
}]
},
{collection: 'Equipas'})
和孩子[项目]:
const MarcacaoSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
date: { type: Date, required: true},
hour: { type: String, required: true},
type: { type: String, required: true},
address: {type: String, required: true},
state: {type: String, default: 'Pendente'},
// equipa: { type: Schema.Types.ObjectId, ref: 'Equipa' },
equipa: {
type: String,
default: 'Não'
},
cliente: {
type: Schema.Types.ObjectId,
ref: 'User'
},
aval_admin: {
type: String,
default: "Sem Avaliação pelo Manager"
},
descricao: {
type: String,
default: "Sem Descrição"
},
aval_client: {
type: String,
default: "Sem Avaliação do Cliente"
},
avaliado: {
type: Boolean,
default: false
},
team: {
type: Schema.Types.ObjectId,
ref: 'Equipas'
}
},
{collection: 'Marcacao'}
我的目标是:当一个团队被删除时,团队数组 ['marcsEquipa[]'] 中的所有项目都会更新为 {team: null},这样我就可以将一个新团队分配给 SAME 项目。
我尝试过使用中间件,但它的一些用法现在已被弃用并且没有成功。解决这个问题的正确方法是什么?
先感谢您
解决方案
await Marcacao.updateMany({team: req.params._id}, {team: null});
这就是解决方案。其中 req.params._id 是团队 ID。
推荐阅读
- xamarin - 查找 Xamarin 类地址
- sql - 从日期中减去天数,然后将结果舍入到 Redshift 中的周末日期
- twilio - Twilio Flex 中未显示以编程方式创建的任务属性
- c - AVR:main()/ISR 干扰
- sql-server - 如何对链接服务器执行存储过程?
- python - 为什么这个非常简单的功能不起作用?
- sql - 选择所有唯一元组的 SQL 查询
- wordpress - 如何将元框添加到特定页面?
- python - 绘制多个 Pandas 数据框
- php - Spatie laravel-permissions Giving Error of Argument 1 Passed