【问题标题】:.save() function doesn't save all info.save() 函数不保存所有信息
【发布时间】:2020-08-26 16:57:51
【问题描述】:

我正在创建一个不和谐的机器人,我想做的是当用户写入列入黑名单的单词时,他的 warn 集合中的数据将增加。但是我现在所拥有的甚至没有将警告保存到正确的集合中,也没有保存 warns 数据。

我的数据.js

const mongoose = require("mongoose");
var scheme = mongoose.Schema

const newScheme = new scheme({ userID2: String, warns: Number }, { collection: 'warnings' });
module.exports = mongoose.model('Warning', newScheme)

我的 index.js

const Warning = require("./models/data.js");

if (foundInText) {
     Warning.findOne({
         userID2: message.author.id,
     }, (err, data) => {
         if (err) throw err
         if (!data) {
             const warningData = new Warning({
                 userID: message.author.id,
                 warns: 1
             })
               warningData.save().catch(err => console.log(err));
         } else {
                data.warns += 1;
                data.save().catch(err => console.log(err));
            }
        })
    }

【问题讨论】:

  • 基于你的架构const newScheme = new scheme({ userID2: String, warns: Number }, { collection: 'warnings' },我想你打错了吗?
  • 已经修复了,但是你的错字是什么意思?你是说userID2 吗?
  • 是的,已经修复了吗?
  • 是的,请在下面查看我的答案

标签: node.js database mongodb mongoose


【解决方案1】:

您应该尝试将data 替换为warns,因为在您的data.js 中您没有任何名称为data 试试这个:

const Warning = require("./models/data.js");

if (foundInText) {
     Warning.findOne({
         userID2: message.author.id,
     }, (err, warns) => {
         if (err) throw err
         if (!warns) {
             const warningData = new Warning({
                 userID: message.author.id,
                 warns: 1
             })
               warningData.save().catch(err => console.log(err));
         } else {
                warns.warns += 1;
                warns.save().catch(err => console.log(err));
            }
        })
    }

【讨论】:

  • 仍然没有将他们的warns 保存到数据库中
【解决方案2】:

我已经使用 warn 方案创建了一个新文件,并且它有效。我不知道为什么,但确实如此。它甚至会创建一个新集合。

新文件中的代码

const mongoose = require("mongoose");

const newScheme = mongoose.Schema({
    name: String,
    warns: Number,
    reason: Array,
    userID: String
})

module.exports = mongoose.model('Warning', newScheme)

然后我刚刚更新了警告的路径和名称

const Warning = require('../../models/warns.js')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多