未保存的值 mongodb
Value not saving in mongodb
const serverS = await server.findOne({ guildID: message.guild.id });
serverS.settings[1]["links"] = true;
serverS.save()
我用的代码^^^^
所以当它保存更改时我使用 MongoDB 罗盘检查数据库 我没有看到数组对象中出现更改
架构如果需要解决问题
const ServerSchema = new mongoose.Schema({
guildID: { type: String },
settings: {
type: Array, default: [
{
//Some other stuff
},
{
links: false,
},
{
prefix: ",",
}
]
},
});
save()
方法returns一个承诺,所以你应该await
保存如下:
const serverS = await server.findOne({ guildID: message.guild.id });
serverS.settings[1]["links"] = true;
const dataSaved = await serverS.save(); //if the save fail will throw an error
console.log({dataSaved}) //to verify the data was saved
找到了如何使用 javascript 和 mongoose 更新数组的一部分的方法:
例如:
collection name
|| array name values
|| || id ||
\/ \/ \/ \/
data.settings.set(0, {lang: "english", prefix: "!"})
data.save()
保存的数据:
"settings": [
{
"lang": "english",
"prefix": ",",
}
]
const serverS = await server.findOne({ guildID: message.guild.id });
serverS.settings[1]["links"] = true;
serverS.save()
我用的代码^^^^
所以当它保存更改时我使用 MongoDB 罗盘检查数据库 我没有看到数组对象中出现更改
架构如果需要解决问题
const ServerSchema = new mongoose.Schema({
guildID: { type: String },
settings: {
type: Array, default: [
{
//Some other stuff
},
{
links: false,
},
{
prefix: ",",
}
]
},
});
save()
方法returns一个承诺,所以你应该await
保存如下:
const serverS = await server.findOne({ guildID: message.guild.id });
serverS.settings[1]["links"] = true;
const dataSaved = await serverS.save(); //if the save fail will throw an error
console.log({dataSaved}) //to verify the data was saved
找到了如何使用 javascript 和 mongoose 更新数组的一部分的方法:
例如:
collection name
|| array name values
|| || id ||
\/ \/ \/ \/
data.settings.set(0, {lang: "english", prefix: "!"})
data.save()
保存的数据:
"settings": [
{
"lang": "english",
"prefix": ",",
}
]