You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyMongo能否连接MongoDB BI Connector?求示例及相关文档

问题解答

PyMongo不支持直接连接MongoDB BI Connector,核心原因是两者使用的通信协议完全不同:

  • MongoDB BI Connector是面向SQL客户端的中间件,对外暴露MySQL/PostgreSQL兼容的SQL协议;
  • PyMongo是MongoDB官方原生Python驱动,仅支持MongoDB自身的二进制协议,无法与BI Connector的SQL协议交互。

你之前的代码能连接MongoDB,是因为使用了MongoDB默认的原生协议端口27017,但BI Connector并不监听这个端口——它默认的SQL服务端口是3307。

正确的Python连接方式

要通过Python与MongoDB BI Connector交互,需使用支持SQL协议的客户端库(如pymysql),以SQL语法操作数据。

示例代码(使用pymysql)

  1. 先安装依赖:
pip install pymysql
  1. 连接并执行SQL查询:
import pymysql

# 配置BI Connector连接信息
conn = pymysql.connect(
    host='localhost',
    port=3307,  # BI Connector默认SQL服务端口
    user='your_username',  # 若BI Connector配置了认证需填写对应账号
    password='your_password',
    database='target_database'
)

# 执行SQL查询并处理结果
with conn.cursor() as cursor:
    # BI Connector会自动将MongoDB集合映射为SQL表
    sql_query = "SELECT * FROM target_collection LIMIT 5"
    cursor.execute(sql_query)
    results = cursor.fetchall()
    
    for record in results:
        print(record)

# 关闭连接
conn.close()

关键说明

  • BI Connector会自动将MongoDB的数据库、集合映射为SQL的数据库、表,你可以直接用标准SQL语法查询、操作数据;
  • 若仅需Python对MongoDB进行原生文档操作,直接用PyMongo连接MongoDB实例即可,无需通过BI Connector;
  • 确保BI Connector已正确配置并连接到你的MongoDB集群,且SQL服务端口(默认3307)处于开放状态。

内容的提问来源于stack exchange,提问作者wei jian ng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:42:35