node.js - 数据未使用 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 的新手,所以如果我做错了什么,请告诉我
提前致谢。
解决方案
您需要使用更新对象添加 $set,如下所示:
call.client.botLoginData.findOneAndUpdate( { clientID: call.args[0]}, {$set:{ activated: true }}, {new:true});
要了解有关 $set 的更多信息,请查看此
推荐阅读
- typescript - Windows Script Host 的 TypeScript 编译问题
- oracle-apex - 表单 BLOB(上传)奇怪的行为
- java - 这个 Maven pom.xml 有冲突吗?
- c - C- 带 *chars 的链表
- c# - Azure Active Directory B2C 注册
- javascript - 通过 jQuery ajax 请求访问嵌套的 JSON 数据
- c# - 在代码中从 C# 控制台应用程序执行 EF CODE Scaffold 语句
- java - 片段自动滚动到其他地方 | 安卓工作室
- google-api - 无法通过 API 将服务帐户添加到在 google 搜索控制台中添加的站点
- javascript - 如何使用 Sequelize bulkCreate 输入多行不同值的数据