如果 Discord.JS 中缺少要查找的字段,我如何为我的 MongoDB 集合添加新字段?
Posted
技术标签:
【中文标题】如果 Discord.JS 中缺少要查找的字段,我如何为我的 MongoDB 集合添加新字段?【英文标题】:How do I make the profiles for my MongoDB Collection add a new field if the field it's looking for is missing in Discord.JS? 【发布时间】:2021-09-21 06:34:43 【问题描述】:如果用户没有配置文件,则列出的最底部字段(“dabmeup”)与其他字段一起正确创建,但当用户已经拥有配置文件时,它不会更新。 我如何正确地使代码添加字段而不覆盖该用户已经拥有的内容? 下面是我的“message.js”文件的一部分,它检查实际添加的字段。
let profileData;
try
profileData = await profileModel.findOne( userID: message.author.id );
if (!profileData)
let profile = await profileModel.create(
userID: message.author.id,
serverID: message.guild.id,
coins: 1000,
bank: 0,
sent: type: Number ,
received: type: Number ,
owner: type: Number, default: 0 , //code: 1
admin: type: Number, default: 0 , //code: 1
nyaw: type: Number, default: 0 , //code: 2
donator: type: Number, default: 0 , //code: 3
dev: type: Number, default: 0 , //code: 4
tester: type: Number, default: 0 , //code: 4
oneK: type: Number, default: 0 , //code: 6
tenK: type: Number, default: 0 , //code: 7
hundK: type: Number, default: 0 , //code: 8
oneM: type: Number, default: 0 , //code: 9
tenM: type: Number, default: 0 , //code: 10
hundM: type: Number, default: 0 , //code: 11
dabmeup: type: Number, default: 0 //code: 12
);
profile.save();
catch (err)
console.log(err);
【问题讨论】:
【参考方案1】:在您的模型中,如果它已经定义了默认值 0,那么您不需要在 create()
中添加它,并且 save()
在修改现有文档时使用提交。
总而言之,您的代码应如下所示
let profileData;
try
profileData = await profileModel.findOne( userID: message.author.id );
if (!profileData)
let profile = await profileModel.create(
userID: message.author.id,
serverID: message.guild.id,
coins: 1000,
bank: 0,
sent: 0,
received: 0,
);
catch (err)
console.log(err);
【讨论】:
它仍然没有通过将新字段添加到集合中的所有配置文件来更新。 抱歉,您想将新字段添加到 mongo 或 discord.js 的集合中? 我想在集合中添加一个新字段,但其他人已经回答了我该怎么做。【参考方案2】:您可以运行一个简单的脚本,该脚本将遍历所有没有dabmeup
属性的文档,并更新它们以包含它。这只需要运行一次。
profileModel.updateMany(
dabmeup: $exists: false , // the $exists operator checks if a field exists
$set: dabmeup: 1 // the $set operator will set a field without modifying the rest of the document
);
【讨论】:
以上是关于如果 Discord.JS 中缺少要查找的字段,我如何为我的 MongoDB 集合添加新字段?的主要内容,如果未能解决你的问题,请参考以下文章