【问题标题】:Mongoose not saving elements in Object Array?Mongoose 不在对象数组中保存元素?
【发布时间】:2022-02-06 20:30:28
【问题描述】:

我正在尝试制作一个 RPG Discord Bot,您可以在其中升级技能、出售物品等。 最近,我的一个朋友重构了所有代码。一切正常,除了启动命令:

在重构之前,它会正确保存所有内容。 之后,它没有为任何技能保存maxLevel属性,而是开始保存ObjectID属性。

Skills/start.js


    await new client.database.user({
      userID: interaction.user.id,
      inventory: [],
      coins: 250,
      skills: [
        {
          name: 'Strength',
          level: 1,
          exp: 0,
          maxLevel: 50,
        },
        {
          name: 'Agility',
          level: 1,
          exp: 0,
          maxLevel: 50,
        },
        {
          name: 'Knowledge',
          level: 1,
          exp: 0,
          maxLevel: 50,
        },
        {
          name: 'Trading',
          level: 1,
          exp: 0,
          maxLevel: 50,
        },
        {
          name: 'Challenge',
          level: 1,
          exp: 0,
          maxLevel: 5,
        },
        {
          name: 'Hunting',
          level: 1,
          exp: 0,
          maxLevel: 50,
        }
      ],
      mobsKilled: 0,
      bossesKilled: 0,
      created: moment().format('DD/MM/YYYY'),
      heavenDifficulty: Math.floor(Math.random() * 9 + 1),
    }).save();

Schemas/User.js

import mongoose from 'mongoose';

const userSchema = mongoose.Schema({
  userID: String,
  guild: {
    guildID: String,
    guildName: String,
    position: String
  },
  inventory: [{ name: String, amount: Number }],
  coins: Number,
  skills: [{ name: String, level: Number, exp: Number }],
  mobsKilled: Number,
  bossesKilled: Number,
  created: String,
  heavenDifficulty: Number,
  isPremium: Boolean,
  premium: {
    since: String,
    sinceTS: String, //TS = Timestamp
    tier: String
  }
});

const UserSchema = mongoose.model('users', userSchema);

另外,我知道premium 属性是空的。这是因为我想在某人成为高级会员时将它们添加到数据库中,而不是在他们开始旅程时。

编辑:这是它返回的内容(所有 undefined 属性应该是 maxLevel 属性) :

【问题讨论】:

    标签: javascript mongoose discord.js


    【解决方案1】:

    “后来没有保存 maxLevel 属性……”

    出现问题是因为您需要向数据库架构添加 maxLevel 属性吗?

    【讨论】:

    • 哦,我没看到。一定是来自重构。非常感谢!
    • 乐于助人! :)
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 2018-06-20
    • 1970-01-01
    • 2019-03-05
    • 2019-08-31
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多