为什么我无法使用Python将电报机器人连接到Mongodb Atlas?

时间:2020-11-08 10:56:44

标签: python heroku pymongo python-telegram-bot

这是我的代码

from telegram.ext import Updater, CommandHandler
import os
from pymongo import MongoClient

TOKEN = 'TOKEN'

def get_db(update, context):
    cluster = MongoClient("mongodb+srv://testing:12345678@cluster0.gs9k5.mongodb.net/test?retryWrites=true&w=majority")
    result = list(cluster.get_database('DBNAME')['COLLECTIONNAME'].find({}))
    update.message.reply_text(str(result))

def main():
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("getdb", get_db))

    updater.start_webhook(listen="#.#.#.#",
                          port=int(PORT),
                          url_path=TOKEN)
    updater.bot.setWebhook('https://MYHEROKUAPP.herokuapp.com/' + TOKEN)

    updater.idle()


if __name__ == '__main__':
    main()

每次我键入/getdb时,机器人都不会给我任何回应。当我尝试几次实验时,似乎集群变量上有一些错误。我使用了tryexcept语法,但是该bot甚至没有显示任何东西,甚至我也找不到错误名称。我正在将heroku服务器用于电报机器人。该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以连接到默认数据库(在连接字符串中定义的数据库),并查询这样的集合

client = MongoClient('connect-string')
db = client.get_default_database()
# 'collection_name' is the name of the Mongo collection
list = db.collection_name.find()