【问题标题】:how can I make an array in a mongoose schema and push to it如何在猫鼬模式中创建一个数组并推送到它
【发布时间】:2021-04-17 05:41:19
【问题描述】:

我正在尝试在 discord.js 中创建 ,setchat 命令。它基本上会将频道 ID 推送到我的 mongoDB 数据库,但我不知道该怎么做

/* eslint-disable no-unused-vars */
const { MessageEmbed } = require('discord.js');
const config = require('../../utils/config.json');
const schema = require('../../models/channelSchema');
module.exports.run = async (client, message, args, utils) => {
    const channel = message.mentions.channels.first();
    if(!channel) return message.channel.send('please mention a channel.');
    schema.channelID.push(channel.id);
    message.channel.send(`chat set as <#${channel.id}>`);
};

但我收到了cannot read property push of undefined

我的架构是

const mongoose = require('mongoose');

module.exports = mongoose.model(
    'channels',
    new mongoose.Schema({
        channelID: [],
    }),
);

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: javascript mongodb mongoose discord discord.js


    【解决方案1】:

    那是因为你必须先初始化它才能使用它

    您可以在架构上设置默认值

    const mongoose = require('mongoose');
    
    module.exports = mongoose.model(
        'channels',
        new mongoose.Schema({
            channelID: {type: Array, default: []},
        }),
    );
    

    这样,它总是一个空数组。

    或者你可以检查它是否为空并在推送之前用一个空数组初始化它

    /* eslint-disable no-unused-vars */
    const { MessageEmbed } = require('discord.js');
    const config = require('../../utils/config.json');
    const schema = require('../../models/channelSchema');
    module.exports.run = async (client, message, args, utils) => {
        const channel = message.mentions.channels.first();
        if(!channel) return message.channel.send('please mention a channel.');
    
        if(!schema.channelID) schema.channelID = [];
    
        schema.channelID.push(channel.id);
        message.channel.send(`chat set as <#${channel.id}>`);
    };
    

    那么,如果没有初始化,就不会出现在数据库中。

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 2016-01-29
      • 2020-03-07
      • 2017-05-28
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      相关资源
      最近更新 更多