FerretDB:真正开源的MongoDB数据库替代品,sechema-less数据库

FerretDB的成立是为了成为MongoDB事实上的开源替代品。 FerretDB是一个开源代理,将MongoDB 6.0+线协议查询转换为SQL - 使用 PostgreSQL 或 SQLite 作为数据库引擎。

为什么我们需要FerretDB数据库?

MongoDB最初是我们许多开发人员大开眼界的技术, 使我们能够比使用关系数据库更快地构建应用程序。 在早期,其易于使用和文档齐全的驱动程序使MongoDB成为最简单的数据库解决方案之一。 然而,随着时间的推移,MongoDB放弃了它的开源根源; 将许可证更改为 SSPL - 使其无法用于许多开源和早期商业项目。

大多数MongoDB用户不需要MongoDB提供的任何高级功能; 但是,他们需要一个易于使用的开源文档数据库解决方案。 认识到这一点,FerretDB在这里填补了这一空白。

范围和当前状态

FerretDB与MongoDB驱动程序和流行的MongoDB工具兼容。 在许多情况下,它可以作为MongoDB 6.0+的直接替代品。 不断添加功能以进一步提高兼容性和性能。

我们欢迎所有贡献者。 请参阅我们的公共路线图, 与MongoDB的已知差异列表, 和贡献指南

快速入门

运行以下命令以使用 PostgreSQL 后端启动 FerretDB:

docker run -d --rm --name ferretdb -p 27017:27017 ghcr.io/ferretdb/all-in-one

或者,运行以下命令以使用 SQLite 后端启动 FerretDB:

docker run -d --rm --name ferretdb -p 27017:27017 \
  -v ./data:/data/ -e FERRETDB_HANDLER=sqlite -e FERRETDB_SQLITE_URL=file:/data/ \
  ghcr.io/ferretdb/all-in-one

此命令将使用 FerretDB、PostgreSQL 和 MongoDB Shell 启动一个容器,以进行快速测试和实验。 但是,它不适合生产用例,因为它将所有数据都保留在内部并在关闭时丢失。 有关说明,请参阅我们的 Docker 快速入门指南 没有这些问题。

运行该容器后,您可以:

  • 使用MongoDB URI与任何MongoDB客户端应用程序连接它。mongodb://127.0.0.1:27017/
  • 使用MongoDB Shell连接到它,只需运行. 如果未在本地安装它,则可以运行 .mongoshdocker exec -it ferretdb mongosh
  • 对于 PostgreSQL 后端,请通过运行 来连接到它。 FerretDB对MongoDB数据库使用PostgreSQL模式。 因此,如果您使用任何MongoDB客户端在数据库中创建了一些集合, 您可以通过运行查询切换到它 并通过运行命令查看 PostgreSQL 表的列表。docker exec -it ferretdb psql -U username ferretdbtestSET search_path = 'test';\dpsql
  • 对于 SQLite 后端,将在目录中的主机上创建数据库文件。 您可以通过在某些数据插入 FerretDB 后运行来访问它们。datasqlite3 data/<filename>.sqlite

您可以使用 停止容器。docker stop ferretdb

我们还为各种 Linux 发行版提供二进制文件和软件包, 以及将 FerretDB 嵌入到应用程序中的 Go 库包。 有关更多详细信息,请参阅我们的文档

建筑和包装

我们强烈建议用户不要自己构建 FerretDB。 相反,请使用我们提供的二进制文件、Docker 映像或 / 包。.deb.rpm

如果要为您的操作系统或发行版打包 FerretDB, 构建二进制文件的推荐方法是使用任务; 有关更多详细信息,请参阅我们的贡献者说明。 FerretDB也可以像任何其他Go程序一样构建, 但是一些生成的文件和构建标记可能会影响它。 有关更多详细信息,请参阅此处build-release

云提供商的托管FerretDB数据库

文档

社区

如果您想联系FerretDB Inc.,请使用此表格

版权声明:本文《FerretDB:真正开源的MongoDB数据库替代品,sechema-less数据库》为「linux名库」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。联系方式osschina@qq.com
 
Leave a Reply 0

Your email address will not be published. Required fields are marked *


加好友请备注:linuxlibs
您可以在微信公众号联系我们
您可以通过邮件联系我们
我们将24小时内回复。
取消