2013-03-23 128 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