# mongo-connector
**Repository Path**: Talbot3/mongo-connector
## Basic Information
- **Project Name**: mongo-connector
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-28
- **Last Updated**: 2026-01-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Mongo Connector
**从 MongoDB 集群到目标系统的实时数据复制管道**
[](https://www.python.org/downloads/)
[](https://www.mongodb.com/)
[](LICENSE)
[完整文档](docs/README.md) | [在线 Wiki](https://github.com/yougov/mongo-connector/wiki) | [Gitee 镜像](https://gitee.com/Talbot3/mongo-connector)
---
## 简介
Mongo Connector 最初是 MongoDB 的一个实验室项目,现在由 YouGov, Plc. 和 Talbot3 共同维护并向社区开源。
**最新版本 (v3.2.0)**: 移除了 mongo-orchestration 依赖,采用现代化 uv + hatchling 构建系统。详见 [CHANGELOG.md](CHANGELOG.md)。
### 系统概述
`mongo-connector` 创建了一个从 MongoDB 集群到一个或多个目标系统的数据管道,例如:
- 🔍 **Solr** - 开源搜索平台
- 🔎 **Elasticsearch** - 分布式搜索和分析引擎
- 🍃 **MongoDB** - 另一个 MongoDB 实例
它首先将 MongoDB 中的数据同步到目标系统,然后通过跟踪 MongoDB oplog 实时保持同步。
---
## 快速开始
### 环境要求
- Python 3.9+
- MongoDB 3.6 到 7.0+
- PyMongo 4.0+
### 安装
```bash
# 基础安装(复制到 MongoDB)
pip install mongo-connector
# 安装带 Solr 支持
pip install 'mongo-connector[solr]'
# 安装带 Elasticsearch 支持
pip install 'mongo-connector[elastic2]'
# 使用 uv(推荐,更快)
uv pip install mongo-connector
```
### 基本使用
1. **启动 MongoDB 副本集**
```bash
mongod --replSet myDevReplSet
# 在 mongo shell 中
rs.initiate()
```
2. **启动 Mongo Connector**
```bash
# 复制到 MongoDB
mongo-connector -m localhost:27017 \
-t localhost:37017 \
-d mongo_doc_manager
# 复制到 Solr
mongo-connector -m localhost:27017 \
-t http://localhost:8983/solr \
-d solr_doc_manager
```
详细说明请查看 [快速开始指南](docs/getting-started.md)。
---
## 📚 完整文档
我们提供完整的中文文档,方便中国用户使用:
### 快速入门
- 📖 [安装指南](docs/installation.md) - 如何安装 Mongo Connector 及其依赖
- 🚀 [快速开始](docs/getting-started.md) - 快速上手指南,包含简单示例
### 基础概念
- 🏗️ [系统概览](docs/system-overview.md) - Mongo Connector 的内部架构和工作原理
- 📝 [Oplog 进度文件](docs/oplog-progress-file.md) - 了解 oplog.timestamp 文件的作用和管理
### 配置和使用
- ⚙️ [配置选项](docs/configuration-options.md) - 完整的配置选项参考
- 🔐 [使用认证](docs/usage-with-authentication.md) - 配置 MongoDB 和目标系统的身份验证
### 目标系统指南
- 🍃 [在 MongoDB 中使用](docs/usage-with-mongodb.md) - 复制到另一个 MongoDB 实例
- 🔍 [在 Solr 中使用](docs/usage-with-solr.md) - 复制到 Apache Solr 搜索引擎
---
## 🎯 主要特性
### ✅ 实时复制
- 通过跟踪 MongoDB oplog 实现毫秒级数据同步
- 支持副本集和分片集群
- 自动处理回滚和故障恢复
### 🔄 多目标支持
- 同时复制到多个目标系统
- 支持不同类型的目标系统组合
- 灵活的命名空间过滤和重命名
### 🛠️ 易于配置
- JSON 格式配置文件
- 丰富的命令行选项
- 支持字段级过滤
### 📦 可扩展架构
- 插件化 DocManager 系统
- 支持自定义目标系统
- 清晰的代码结构
---
## 📦 DocManager 插件
Mongo Connector 支持多种目标系统,通过插件方式安装:
| 目标系统 | 安装命令 | 文档链接 |
|---------|---------|---------|
| MongoDB | `pip install mongo-connector` | [使用指南](docs/usage-with-mongodb.md) |
| Elasticsearch 1.x | `pip install 'mongo-connector[elastic]'` | [elastic-doc-manager](https://github.com/yougov/elastic-doc-manager) |
| Elasticsearch 2.x/5.x | `pip install 'mongo-connector[elastic2]'` | [elastic2-doc-manager](https://github.com/yougov/elastic2-doc-manager) |
| Solr | `pip install 'mongo-connector[solr]'` | [使用指南](docs/usage-with-solr.md) |
---
## 🧪 测试
### 运行单元测试
```bash
# 运行特定测试
pytest tests/test_config.py tests/test_namespace_config.py -v
# 使用测试脚本
./run_tests.sh quick
```
### 运行端到端测试(需要 Docker)
```bash
# 启动 MongoDB
docker-compose -f docker-compose.test.yml up -d
# 初始化副本集
docker exec mongo-test-primary mongosh --eval 'rs.initiate({...})'
# 运行测试
python test_simple_e2e.py
# 清理
docker-compose -f docker-compose.test.yml down
```
---
## 📖 相关资源
### 官方资源
- **GitHub**: https://github.com/yougov/mongo-connector
- **Gitee (维护仓库)**: https://gitee.com/Talbot3/mongo-connector
- **在线 Wiki**: https://github.com/yougov/mongo-connector/wiki
### 开发者文档
- [PyPI 发布指南](PyPI_RELEASE_GUIDE.md) - 如何发布到 PyPI
- [项目架构指南](CLAUDE.md) - 项目结构和设计说明
- [变更日志](CHANGELOG.md) - 版本更新记录
### MongoDB 相关文档
- [MongoDB Manual](https://docs.mongodb.com/manual/)
- [副本集](https://docs.mongodb.com/manual/replication/)
- [分片集群](https://docs.mongodb.com/manual/sharding/)
- [认证](https://docs.mongodb.com/manual/core/authentication/)
---
## 🤝 贡献
欢迎贡献代码、报告问题或提出改进建议!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
在 [Gitee](https://gitee.com/Talbot3/mongo-connector) 或 [GitHub](https://github.com/yougov/mongo-connector) 提交 Issue 和 Pull Request。
---
## ❓ 故障排除
遇到问题?
1. 查看 [完整文档](docs/README.md)
2. 阅读 [FAQ](https://github.com/yougov/mongo-connector/wiki/FAQ)
3. 在 [Gitee Issues](https://gitee.com/Talbot3/mongo-connector/issues) 搜索或提问
---
## 📄 许可证
Apache License 2.0 - 详见 [LICENSE](LICENSE) 文件
---
## 🎉 致谢
- 原始作者: MongoDB Labs
- 当前维护者: YouGov, Plc. 和 Talbot3
- 感谢所有贡献者的支持!
---
**⭐ 如果这个项目对您有帮助,请给我们一个 Star!**
Made with ❤️ by the Mongo Connector community