【问题标题】:Embed Mongodb with Electron用 Electron 嵌入 Mongodb
【发布时间】:2026-01-30 18:30:01
【问题描述】:

我将 MongoDB 源代码保存在电子源代码中并使用此命令运行 MongoDB:

const app = require('electron').app;
const child_process = require('child_process');
const dbInstanceDir = app.getAppPath();
const startMongo = dbInstanceDir + mongodb/bin/mongod --dbpath mydbpath --port 27017 --logpath mylogfile

child_process.exec(startMongo, (error, stdout, stderr) => {
});

上面的命令在开发时工作,但在捆绑后它不工作。我正在使用电子生成器制作捆绑包。 MongoDB 源代码位于根级别。

【问题讨论】:

标签: electron electron-builder


【解决方案1】:

据我所知,你不能用 Electron 打包 MongoDB,它必须单独安装。引自本站:https://www.techiediaries.com/electron-data-persistence/

使用 MongoDB 的优缺点

对于将 MongoDB 与 Electron 应用程序结合使用的优点:

  • 适用于所有 Electron 支持的平台,例如 Windows、Linux 和 MAC。所以它不会限制 Electron 的跨平台特性。

  • 可以与 Electron 轻松安装和集成。

也有一些缺点:

  • 无法与 Electron 捆绑,因此最终用户需要安装它 与您的应用程序分开。
  • 小应用程序的矫枉过正。

相反,我可以建议使用 NeDB - https://github.com/louischatriot/nedb

NeDB 使用 MongoDB API 的一个子集,因此您不需要更改太多代码来进行读写。如果您继续阅读我在上面发布的链接,它还包括在 Electron 应用程序中使用 NeDB。

还有其他几个可以嵌入 Electron 的选项,例如 NeDB(Pouch,Loki.js),它们可能更适合您的需求。


** 更新 **

你也许可以使用这个:https://github.com/nosqlclient/nosqlclient-electron

更多信息请访问网站:https://www.nosqlclient.com/

看起来它是一个完全支持 MongoDB 的 Electron 替代应用程序,使用 Electron?

【讨论】:

  • 我已经用过NeDB了。 NeDB 的主要问题是将整个数据库加载到内存中,如果内存耗尽,系统会挂起,这就是我尝试使用 MongoDB 的原因
  • 我想知道为什么我投了反对票——这个答案是正确的——你不能用 Electron 打包 MongoDB
  • @Rohit - 用可能的替代方法更新了我的答案。另外,关于 NeDB - 内存耗尽的数据库有多大?您是否考虑过将其拆分为多个数据库?
  • @fedeteka 查看作者的免责声明github.com/louischatriot/nedb#pull-requests
  • @Nickensoul 谢谢!
【解决方案2】:

通用解决方案 此处描述了允许使用电子嵌入预编译二进制文件this one ?

使用电子根路径包的分步教程可以找到here

【讨论】: