比方说,我有一个表单架构,其中包含基于问题架构的一系列子文档。
表单架构
FormId: Number,
Questions: [QuestionSchema]
问题模式
_id: ObjectId(...)
QuestionLabel: String,
QuestionRequired: Boolean
在前端,我有一个表单视图,其中显示表单ID,其他一些字段(标题,创建者,最新更新等),然后是问题列表。每个问题的“问题_id”都有一个隐藏的输入,而“必填问题”字段则有一个复选框。
<form action="" method="post">
<!-- loop questions -->
<input type="hidden" name="questions[0][_id]">
<input type="checkbox" name="questions[0][required]">
...
<input type="hidden" name="questions[77][_id]">
<input type="checkbox" name="questions[77][required]">
因此,我想做的是更新每个问题的状态(“必填”),而无需为“标签”放置隐藏字段(否则可能会从子文档中删除该属性)。我是否需要使用Express / Mongoose在循环中运行“更新”函数调用,或者是否有一种简单的更新函数格式可以通过_id进行匹配或过滤,并且知道可以更新必填字段(“ $ set”)而不会冒丢失的风险我的其他字段(即QuestionLabel)。