如何在 JavaScript 中使用 Mongoose 动态更新文档?

Posted

技术标签:

【中文标题】如何在 JavaScript 中使用 Mongoose 动态更新文档?【英文标题】:How to dynamically update documents with Mongoose in JavaScript? 【发布时间】:2020-09-08 17:47:44 【问题描述】:

我需要根据来自 html 对象的 data-target 的值更新 MongoDB 文档中的属性。但是,我不知道如何将其data-target 插入JSON.stringify

const save = (_id) =>
    const token = localStorage.getItem('token')
    const saves= document.querySelectorAll(".flaticon-diskette")

    saves.forEach(function(save)

        console.log(`.input-$save.getAttribute("data-target")`)
        const input = document.querySelector(`.input-$save.getAttribute("data-target")`)
        var target = save.getAttribute("data-target")

        save.addEventListener('click', () =>
            fetch(`https://janfa.gharsnull.now.sh/api/auth/edit/$_id`,
                method: 'PUT',
                headers: 
                    'Content-Type': 'application/json',
                    authorization : token,
                ,
                body: JSON.stringify(  target : `$input.value` ), 
            ).then(console.log("done"))
        )
    )

target 应该包含每个savedata-target,但它被JSON.stringify 读取为“目标”。我尝试使用模板字符串,但似乎JSON.stringify 不允许我在第一个字段中使用它。我能做什么?

【问题讨论】:

【参考方案1】:

只需将body: JSON.stringify( target : '$input.value' ) 更改为body: JSON.stringify( [target] : '$input.value' ) 即可解决此问题

【讨论】:

【参考方案2】:

要使用 Mongoose 更新文档,您需要使用 yourDocumentModel.findByIdAndUpdate()(如果一次是一个文档)函数。

如果你已经安装了所有的包,你需要调用异步函数来更新数据库中的文档

【讨论】:

是的,我已经解决了。如果我不清楚这个问题,我的意思是我需要在 JSON.stringify 中插入一个变量,但不知道如何 好吧,我没看懂问题

以上是关于如何在 JavaScript 中使用 Mongoose 动态更新文档?的主要内容,如果未能解决你的问题,请参考以下文章

mongoose基本增删改查

如何仅查看猫鼬中值的第一个字母来查找所有文档

nestjs mongoose .insertMany 不是函数

如何使用 Nestjs 中的请求范围提供程序动态更改数据库连接?

在codeigniter mongodb中插入函数的位置

使用 mongoose 访问现有的 mongodb 集合