2013-03-23 85 views
5

想知道是否可以从nodejs中运行mongodump/mongorestore。可能不是一个真正的猫鼬,因为那不是真正的猫鼬。但是想知道是否有办法从mongodb nodejs驱动程序执行这些命令。来自NodeJS或mongoose的mongodump/mongorestore

看起来像我能做到这一点作为最后的手段: How do I execute the mongodump command programmatically from node.js?

+1

'但是,我应该提到你可以用node.js驱动程序很容易地实现备份和恢复mongodb数据。我假定你的意思是没有mongoback/maongorestore。怎么会这样?有一个简单的例子/链接?谢谢。 – lostintranslation 2013-03-23 16:49:15

+0

哦,好的,我明白你在说什么了。谢谢您的帮助。 – lostintranslation 2013-03-23 17:05:19

回答

6

当你说我'from node.js'假设你的意思是叫您的Node.js应用mongodump/mongostore命令。

由于mongodumpmongostore是命令行应用程序。您可以从node.js“执行它们”的唯一方法是使用您在此处找到的解决方案。

也就是说,使用child_process.spawn因为没有人为它们创建了node.js绑定。

我不会将它作为“最后的手段”,因为它完全符合您的需求。但是,我应该提到,您可以使用node.js driver轻松实现备份和恢复mongodb数据。也就是说,遍历集合并存储它们,做相反的操作来恢复备份。

虽然我强烈反对。您所链接的问题中提出的方法存在的问题相对较小。我已经看到它在生产中使用过(好吧,类似的东西),而且没有问题。

2

我写了一个小模块:https://github.com/meryn/mongo-utils。它为你解析mongo连接字符串。 '

+0

+1不错!现在尝试它。 – 2013-12-31 21:18:07

+0

可悲的是,没有[黑客攻击](https://groups.google.com/forum/#!msg/angular/wZQY1XmstKo/4Kny9Rf4XOQJ)e2e,我无法获得这个运行,因为e2e与requirejs不兼容。 – 2013-12-31 22:25:48