第一个文档"/>
mongoose.updateOne()总是更新第一个文档
我正在为不和谐的机器人发出命令,我要在其中编辑文档中的用户信息。该命令看起来像!edit @tag email language
一样有效,但是无论谁ping它都将始终更改MongoDB中的第一个文档。
let user = message.mentions.users.first()
Data.findOne({
userID: user.id,
}, (err, data) => {
if (err) return console.log(err);
if (!data) {
return message.reply("That user isn't in list")
} else {
Data.updateOne({
language: args[2],
email: args[1]
}, (err) => {
if (err) throw err;
let embed = new Discord.MessageEmbed()
.addField("Name", data.name);
message.channel.send(embed)
})
}
Data.js
const mongoose = require("mongoose");
const dataSchema = mongoose.Schema({
name: String,
language: String,
email: String,
userID: String,
lb: String,
usage: Number
})
module.exports = mongoose.model(`Data`, dataSchema)
这是我的文档的样子
回答如下:也许您应该尝试此
Data.findOneAndUpdate({ userID: user.id}, {$set:{language: args[2], email: args[1]}, {new:true}). exec((err, data) => {
//further response with updated data
}) ;
更多推荐
mongoose.updateOne()总是更新第一个文档
发布评论