{"record":{"id":"2e4394adf597ae49","repo":"hsliuping/TradingAgents-CN","slug":"mongodb-n1-mongodb","errorCode":null,"errorMessage":"MongoDB连接字符串未配置。请通过以下方式之一进行配置：\\n1. 设置环境变量 MONGODB_CONNECTION_STRING\\n2. 在初始化时传入 connection_string 参数\\n例如: MONGODB_CONNECTION_STRING=mongodb://localhost:27017/","messagePattern":"MongoDB连接字符串未配置。请通过以下方式之一进行配置：\\\\n1\\. 设置环境变量 MONGODB_CONNECTION_STRING\\\\n2\\. 在初始化时传入 connection_string 参数\\\\n例如: MONGODB_CONNECTION_STRING=mongodb://localhost:27017/","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"critical","filePath":"tradingagents/config/mongodb_storage.py","lineNumber":38,"sourceCode":"    from pymongo import MongoClient\n    from pymongo.errors import ConnectionFailure, ServerSelectionTimeoutError\n    MONGODB_AVAILABLE = True\nexcept ImportError:\n    MONGODB_AVAILABLE = False\n    MongoClient = None\n\n\nclass MongoDBStorage:\n    \"\"\"MongoDB存储适配器\"\"\"\n    \n    def __init__(self, connection_string: str = None, database_name: str = \"tradingagents\"):\n        if not MONGODB_AVAILABLE:\n            raise ImportError(\"pymongo is not installed. Please install it with: pip install pymongo\")\n        \n        # 修复硬编码问题 - 如果没有提供连接字符串且环境变量也未设置，则抛出错误\n        self.connection_string = connection_string or os.getenv(\"MONGODB_CONNECTION_STRING\")\n        if not self.connection_string:\n            raise ValueError(\n                \"MongoDB连接字符串未配置。请通过以下方式之一进行配置：\\n\"\n                \"1. 设置环境变量 MONGODB_CONNECTION_STRING\\n\"\n                \"2. 在初始化时传入 connection_string 参数\\n\"\n                \"例如: MONGODB_CONNECTION_STRING=mongodb://localhost:27017/\"\n            )\n        \n        self.database_name = database_name\n        self.collection_name = \"token_usage\"\n        \n        self.client = None\n        self.db = None\n        self.collection = None\n        self._connected = False\n        \n        # 尝试连接\n        self._connect()\n    \n    def _connect(self):","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/hsliuping/TradingAgents-CN/blob/74783e8817d6cf6de29867880631cc555153f36b/tradingagents/config/mongodb_storage.py#L20-L56","documentation":"Raised by MongoDBStorage.__init__ when neither the connection_string argument nor the MONGODB_CONNECTION_STRING environment variable provides a value. This intentionally removed the old hardcoded localhost default.","triggerScenarios":"new MongoDBStorage() with no arguments and no MONGODB_CONNECTION_STRING in the environment; or passing connection_string=None explicitly while env var is unset.","commonSituations":"Upgrading to a version that removed the hardcoded default, running scripts outside docker-compose where the env var was injected, or passing the connection string under a different variable name.","solutions":["export MONGODB_CONNECTION_STRING=mongodb://localhost:27017/","Or pass it explicitly: MongoDBStorage(connection_string='mongodb://localhost:27017/')","Check for typos/whitespace in the env var name and value"],"exampleFix":"# before\nstorage = MongoDBStorage()\n# after\nstorage = MongoDBStorage(connection_string=os.environ['MONGODB_CONNECTION_STRING'])","handlingStrategy":"validation","validationCode":"import os\ncs = os.getenv('MONGODB_CONNECTION_STRING')\nif not cs:\n    raise SystemExit('MONGODB_CONNECTION_STRING not set; refusing to start')\nstorage = MongoDBStorage(connection_string=cs)","typeGuard":null,"tryCatchPattern":"try:\n    storage = MongoDBStorage()\nexcept ValueError as e:\n    if 'MongoDB' in str(e):\n        storage = MongoDBStorage(connection_string='mongodb://localhost:27017/')","preventionTips":["Always pass connection_string explicitly rather than relying on env","Keep one source of truth for connection strings (env/secret manager)","Add integration test that constructs MongoDBStorage in CI with env set"],"tags":["python","mongodb","env-var","config"],"backgroundTag":"missing-env-var","analyzedSha":"74783e8817d6cf6de29867880631cc555153f36b","analyzedAt":"2026-08-28T11:39:07.729Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}