使用nodejs更新mongodb中的相对模式
Posted
技术标签:
【中文标题】使用nodejs更新mongodb中的相对模式【英文标题】:updating relative schema in mongodb using nodejs 【发布时间】:2021-11-12 22:23:39 【问题描述】:我正在尝试更新在第一个架构中引用的第二个架构
projectSchema.js
var projectSchema = Schema(
pname : String,
description : String,
assignee :
type: Schema.Types.ObjectId,
ref: 'Assignment'
);
var Project = mongoose.model('project', projectSchema);
assigneeSchema.js
var assigneeSchema = Schema(
assigneeName : String,
grade : String,
startDate : Date,
endDate : Date
);
var Assignee = mongoose.model('Assignment', shopSchema);
所以我正在尝试像这样更新我的架构
const update = async (req, res) =>
const id = req.params;
let update = ;
let updateAssignee=;
if (req.body.pname) update.pname = req.body.pname;
if (req.body.description) update.description = req.body.description;
if (req.body.assignee.assigneeName) updateAssignee.assignee.assigneeName = req.body.assignee.assigneeName;
if (req.body.assignee.grade) updateAssignee.assignee.grade = req.body.assignee.grade;
let newProject = new Project.updateOne(
projectId: id ,
$set: update,
,
runValidators: true
);
let newAssignee = new Assignee.updateOne(
projectId: id ,
$set: updateAssignee,
,
runValidators: true
);
;
我正在尝试更新商店,但它无法正常工作,我不知道我错在哪里
【问题讨论】:
【参考方案1】:const update = async (req, res) =>
const id = req.params;
let update = ;
let updateAssignee=;
if (req.body.pname) update.pname = req.body.pname;
if (req.body.description) update.description = req.body.description;
if (req.body.assignee.assigneeName) updateAssignee.assignee.assigneeName = req.body.assignee.assigneeName;
if (req.body.assignee.grade) updateAssignee.assignee.grade = req.body.assignee.grade;
let newProject = new Project.findOneAndupdate(
projectId: id ,
$set: update,
,
runValidators: true,returnOriginal: false
);
let newAssignee = new Assignee.updateOne(
_id: newProject.assignee ,
$set: updateAssignee,
,
runValidators: true
);
;
/// 使用 findOneAndUpdate 后会返回新对象,获取受让人ID并放入受让人查询
【讨论】:
以上是关于使用nodejs更新mongodb中的相对模式的主要内容,如果未能解决你的问题,请参考以下文章