Node.js 如何使用基于唯一id的节点更新mongodb中的多个文档

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

如何在mongoose中更新多个文档,我知道如何更新多个与其他文档匹配的文档,但我希望使用id更新多个文档

我尝试了很多方法,这里就是其中之一

更新


还有一件事,我如何将多个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'
    });
}