Не записывается переданное значение в базу данных MongoDB через команду в telegram боте
Есть вопрос: имеется бот телеграм, использую grammY и MongoDB, создаю команду BAN, чтобы при ее вводе нужному пользователю (tg_id
) в БД записывалось значение banned: 1.
bot.command('ban', async (ctx) => {
const param1 = ctx.match;
if(!param1) return await ctx.reply('Введи /ban ID пользователя')
if(!Number(param1)) return await ctx.reply('ID должен быть числовым')
await collection.updateOne({tg_id: param1}, {$set: {banned: 1}})
await ctx.reply(`Забанен пользователь ${param1}`)
console.log(param1)
});
console.log
в таком случае, если ввели значение:
После ввода команды в БД указанному пользователю переданному в param1
ничего не обновляется.
Если конкретно указывать ID и tg_id await collection.updateOne({tg_id: 12345}, {$set: {banned: 1}})
, то запись произойдет
Ответы (1 шт):
Автор решения: reCAPTCHA
→ Ссылка
Если запись происходит при указании их вручную, то, значит, возможно, проблема в том, что модель пользователя определена с интовым значением, а передается строка. Попробуй:
await collection.updateOne({tg_id: parseInt(param1)}, {$set: {banned: 1}})