Как искать и отправлять коллекции MongoDB?
Есть команда /dbcheck, к ней есть параметр find
find - что искать.
Мне нужно, когда человек пишет команду /dbcheck userID: 123456789az бот искал в коллекциях БД: "userID: 123456789az" и весь "блок" коллекции где нашел это отправлял человеку который вызвал команду.
Ответы (1 шт):
Автор решения: wilddip
→ Ссылка
Рекомендую использовать JSON.parse:
const prefix = '/';
client.on('msg', async (msg) => {
if (msg.author.bot) return;
let args = msg.trim().split(' ');
let cmd = args.shift();
if (!cmd.startsWith(prefix)) return;
cmd = cmd.slice(prefix.length);
if (cmd === 'dbcheck') {
if (!args[0]) return msg.reply('Вы не указали, что искать');
let findFilter = {};
try {
findFilter = JSON.parse(args.join(' '));
} catch (err) {
return msg.reply('Не удалось преобразовать аргумент!')
}
//
// Прошу обратить внимание, что переменную Model Вы должны заменить на свою!
//
let result = await Model.find(findFilter).catch((err) => {
return msg.reply(`Возникла ошибка: \`${err}\``);
});
return msg.reply(`Найденные результаты:\n\`\`\`json\n${JSON.stringify(result)}\`\`\``);
}
})
Использование команды должно выглядеть так:
/dbcheck { "userID": "1234" }