我正在尝试在node js猫鼬中使用。当我尝试编辑时,只有第一个ID不会全部更新。我想更新所有,但只有一个更新
controller.js
router.get('/edit/:id', async (req,res) => {
const { id } = req.params;
const admins = await Admin.findById(id);
res.render('/seo', {
admins
});
});
router.post('/edit/:id', async (req,res) => {
const { id } = req.params;
await Admin.update({_id: id },req.body, {multi: true}, (err, doc) => {
if (err) {
console.log("Something wrong when updating data!");
}
console.log(doc);
});
res.redirect('/seo');
});
model.js
const adminSchema = new Schema({
_id:mongoose.Schema.ObjectId,
title: {
type:String
},
url: {
type:String
},
description: {
type:String
},
keywords: {
type: String
}
})
file.ejs
<form action="/edit/<%= admins[i]._id %>" method="POST" id="myForm1">
<td><%= i+1 %></td>
<td>
<div class="form-group">
<input type="text" class="form-control" placeholder="Title" name="title" value="<%= admins[i].title %>">
</div>
</td>
<td>
<div class="form-group">
<input type="text" class="form-control" placeholder="URL" name="url" value="<%= admins[i].url %>">
</div>
</td>
<td>
<div class="form-group">
<input type="text" class="form-control" placeholder="Description" name="description" value="<%= admins[i].description %>">
</div>
</td>
<td>
<div class="form-group">
<input type="text" class="form-control" placeholder="Keywords" name="keywords" value="<%= admins[i].keywords %>">
</div>
</td>
<td>
<div class="justify-content-md-center">
<input type="submit" value="Save" class="btn bg-red rounded" form="myForm1">
</div>
</td>
预计将更新所有数据,但在更新该ID时会出现在命令提示符下 POST / edit / 5cda594358892b069cc05526 302 10.550 ms-52并不会全部更新。第一个ID能够更新
答案 0 :(得分:0)
您指定您只想更新一位管理员:{_id:id}
Admin.update({_id: id }
如果要更新管理集合中的所有对象,请删除条件{_id:id}
await Admin.update({},req.body, {multi: true}, (err, doc) =>