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

如何用LangChain查询Mongo集合?是否有类SQLDatabaseChain的工具?

用LangChain查询MongoDB集合的替代方案

LangChain提供了适配MongoDB的MongoDBChain,功能和SQLDatabaseChain类似,能将自然语言查询转为MongoDB查询语句并执行,以下是具体实现步骤:

  • 安装依赖
    确保安装必要的包,包括LangChain核心库、MongoDB驱动和社区集成包:

    pip install langchain pymongo langchain-community
    
  • 初始化MongoDB连接
    先建立到MongoDB实例的连接,指定目标数据库和集合:

    from pymongo import MongoClient
    
    # 替换为你的MongoDB连接字符串
    client = MongoClient("mongodb://localhost:27017/")
    db = client["你的数据库名"]
    collection = db["你的集合名"]
    
  • 创建并运行MongoDBChain
    结合大语言模型(比如OpenAI)初始化链,即可用自然语言查询集合:

    from langchain_community.chains import MongoDBChain
    from langchain_openai import OpenAI
    
    # 初始化LLM,替换为你的API密钥
    llm = OpenAI(api_key="你的OpenAI密钥", temperature=0)
    
    # 创建MongoDB链
    chain = MongoDBChain.from_llm(llm, collection=collection, verbose=True)
    
    # 执行自然语言查询
    result = chain.run("找出所有注册时间在2023年之后的用户")
    print(result)
    
  • 自定义优化
    你可以通过自定义提示词来调整查询生成逻辑,比如指定返回字段、过滤规则,或者要求返回格式化的结果。例如修改链的提示模板:

    from langchain.prompts import PromptTemplate
    
    custom_prompt = PromptTemplate(
        input_variables=["question", "collection_info"],
        template="根据MongoDB集合信息{collection_info},将用户问题{question}转为MongoDB查询语句,只返回查询结果的JSON格式,不要额外解释。"
    )
    
    chain = MongoDBChain.from_llm(llm, collection=collection, prompt=custom_prompt, verbose=True)
    

注意:如果使用LangChain v0.1及以上版本,MongoDB相关工具链已移至langchain-community包中,导入时需对应调整路径。

内容的提问来源于stack exchange,提问作者Naxi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:15