首页 > 解决方案 > 数据未使用 Mongoose findOneAndUpdate 函数保存到 MongoDB

问题描述

我正在使用 Mongoose 与 MongoDB 数据库进行交互。

我将它用于不和谐机器人。

如果用户具有角色,我正在尝试将布尔值更改activated为数据库中的值。true

(代码如下)

当我尝试运行该函数时没有错误,只是没有任何反应,并且数据库中没有影响更改。数据库已连接并正在工作,并且用户具有完全权限。

let role = call.message.guild.roles.get('702210416012689478')

            if(!call.message.member.roles.has(role.id))
                return;

            call.client.botLoginData.find( {clientID: call.args[0] }, (err, docs) => {
                if(docs.length === 0)
                    return call.message.channel.send(`Couldn't find a client with that ID.`);

                call.client.botLoginData.findOneAndUpdate( { clientID: call.args[0]}, { activated: true });
                call.message.channel.send(`I have successfully updated that bot. Please allow up to 10 mins to propagate, and then restart the bot.`)
            }).catch(error => {
                call.message.channel.send(error)
            })

我是 Mongoose/Mongo 的新手,所以如果我做错了什么,请告诉我

提前致谢。

标签: node.jsmongodbmongoosediscorddiscord.js

解决方案


您需要使用更新对象添加 $set,如下所示:

call.client.botLoginData.findOneAndUpdate( { clientID: call.args[0]}, {$set:{ activated: true }}, {new:true});

要了解有关 $set 的更多信息,请查看


推荐阅读