您好,那里是一个快速的MongoDB,其中包含一些Discord知识问题:
因此,目前,我希望我的MongoDB文档的格式类似于以下内容:
channels: {
utility:{
suggestions: String
},
logging: {
main: String,
channel: {
channelCreate: String,
channelDelete: String,
channelUpdate: String,
},
role: {
roleCreate: String,
roleDelete: String,
roleUpdate: String,
}
}
这将保存频道ID,以便用户确定每个事件的记录位置。我已经在模式中对此进行了设置,一切都很好,但是当我执行findOneAndUpdate
时,我不知道如何编辑单个字段。例如,假设我要编辑roleDelete
内部的channels.logging.role
,我该怎么做?因为在做
await doc.updateOne({channels:{logging:{role:{roleDelete: IDHERE}}}});
它不起作用。实际上,它将所有内容拧紧,并将channels
中的所有内容替换为给定的值,那么我将如何实际更新一个值而不弄乱其他所有内容?非常感谢您的关注和参与。
这是使用NodeJS Mongoose NPM软件包btw。
答案 0 :(得分:0)
您需要使用React Native Debugger
运算符。您可以在https://docs.mongodb.com/manual/reference/operator/update/set/index.html
Appium
答案 1 :(得分:0)
所以我通过以下操作解决了这个问题:
await doc.updateOne({ 'channels.logging.role.roleDelete': IDHERE}, { new: true, upsert: true, setDefaultsOnInsert: true });
这将更新值(如果存在),并创建它(如果不存在)。使用上述方法在内部使用$set
。 (Read more here)
请随时问我是否不清楚自己的情况