跳至主要内容
五折优惠 全部方案,限时优惠。起价 $2.48/mo
FerretDB

FerretDB

FerretDB 是一款兼容 MongoDB 的数据库,底层支持 PostgreSQL 或 SQLite。它是 MongoDB Atlas 的开源替代方案,没有 SSPL 许可证带来的不确定性。采用 Apache 2.0 许可证,可直接使用现有的 MongoDB 驱动,并继承 Postgres 的可靠性与工具生态。

快速概览

11k

GitHub star 数

42

页面浏览量

许可 Apache-2.0 版本 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

建筑

Client
 ↓
 Port 27017 (MongoDB protocol)
 ↓
 FerretDB container
 ↓
 PostgreSQL container (internal Docker network)
 ↓
 Persistent storage directory

FerretDB 在内部将 MongoDB 线路协议请求转换为 PostgreSQL 查询。

PostgreSQL 不会公开暴露。

端口

  • 27017/tcp → 公开的 MongoDB 兼容端点
  • 5432/tcp → 内部 PostgreSQL(不对外暴露)

访问

凭据参考: /root/ferretdb/.env

如有需要,安装客户端:

apt install -y mongodb-mongosh

使用身份验证连接:

mongosh "mongodb://<USERNAME>:<PASSWORD>@<SERVER_IP>:27017/<DATABASE>?authSource=postgres"

重要文件与目录

  • 安装目录: /root/ferretdb
  • 编写文件: /root/ferretdb/docker-compose.yml
  • 环境变量文件: /root/ferretdb/.env
  • PostgreSQL 数据目录: /root/ferretdb/data

服务管理

查看状态:

docker ps

查看日志:

docker compose -f /root/ferretdb/docker-compose.yml logs -f

重启服务:

docker compose -f /root/ferretdb/docker-compose.yml restart

常用 MongoDB 命令

列出数据库:

show dbs

切换数据库:

use postgres

列出集合:

show collections

查看文档:

db.collection_name.find()

插入文档:

db.collection_name.insertOne({ name: "example" })

退出 shell:

exit

为安全起见,将 FerretDB 绑定到 Localhost

已启用身份验证,但暴露的数据库服务仍存在风险。

编辑: /root/ferretdb/.env

改变 HOST=0.0.0.0 to HOST=127.0.0.1

然后应用更改:

docker compose -f /root/ferretdb/docker-compose.yml up -d

现在该服务无法从外部访问。

使用 SSH 端口转发进行访问。

在本地机器上执行:

ssh -L 27017:localhost:27017 root@<SERVER_IP>

然后在本地连接:

mongosh "mongodb://<USERNAME>:<PASSWORD>@localhost:27017/<DATABASE>?authSource=postgres

更多数据库工具

相关应用。

立即部署 FerretDB。 起价 $2.48/月。