Node.js 如何使用基于唯一id的节点更新mongodb中的多个文档
如何在mongoose中更新多个文档,我知道如何更新多个与其他文档匹配的文档,但我希望使用id更新多个文档 我尝试了很多方法,这里就是其中之一 更新Node.js 如何使用基于唯一id的节点更新mongodb中的多个文档,node.js,express,mongoose,Node.js,Express,Mongoose,如何在mongoose中更新多个文档,我知道如何更新多个与其他文档匹配的文档,但我希望使用id更新多个文档 我尝试了很多方法,这里就是其中之一 更新 还有一件事,我如何将多个ID作为参数传递给postman tester以更新多个文档。mongoose.Types.ObjectId.isValid将返回布尔值。检查这个 如果您希望更新多个ID以在req.body内传递这些ID 对于多次使用$in else,请直接传递 var myid = req.params.noteId; if (mong
还有一件事,我如何将多个ID作为参数传递给postman tester以更新多个文档。
mongoose.Types.ObjectId.isValid
将返回布尔值。检查这个
如果您希望更新多个ID以在req.body内传递这些ID
对于多次使用$in else,请直接传递
var myid = req.params.noteId;
if (mongoose.Types.ObjectId.isValid(myid)) {
Note.update({
_id: mongoose.Types.ObjectId(myid)
// _id: {$in: req.body.somekey_array.map(id => mongoose.Types.ObjectId(id ))} //multiple
}, {
lname: req.body.lname || "Untitled Note",
age: req.body.age
}, {
multi: true //multiple
})
.then(note => {
console.log('----qqqqq--', note)
if (!note) {
return res.status(404).send({
message: "Note not found with id " + req.params.noteId
});
}
res.json(note);
});
} else {
res.status(400).json({
msg: 'id not correct'
});
}
mongoose.Types.ObjectId.isValid将返回布尔值。选中此项,为什么要在
运算符中使用$in进行单个id匹配?可能您正在寻找的是mongoose.Types.ObjectId(myid)
而不是单个id,我提供了两个id。我还尝试了mongoose.Types.ObjectId(myId)
,得到了TypeError:mongoose.Types.ObjectId不是一个函数,如果我提供了多个Id,它正在执行else块。如果您使用body传递,则必须更新条件。localhost:3000/notes/5d68c4e15269f90c08a99e79,5d68c8c4b5d7031a68235a3f
我可以这样传递吗。我正在使用postman@manjesha您的快速路线是否定义为这样的/notes/:noteId
,如果是GET
,您需要使用const-idsArr=(req.params.noteId).拆分(“,”)
,然后使用该idsArr
传递到$in
操作中。并使用如何定义路线更新问题。
var myid = req.params.noteId;
if (mongoose.Types.ObjectId.isValid(myid)) {
Note.update({
_id: mongoose.Types.ObjectId(myid)
// _id: {$in: req.body.somekey_array.map(id => mongoose.Types.ObjectId(id ))} //multiple
}, {
lname: req.body.lname || "Untitled Note",
age: req.body.age
}, {
multi: true //multiple
})
.then(note => {
console.log('----qqqqq--', note)
if (!note) {
return res.status(404).send({
message: "Note not found with id " + req.params.noteId
});
}
res.json(note);
});
} else {
res.status(400).json({
msg: 'id not correct'
});
}