2011-04-25 40 views
2

MongoDB中導入大量的數據可能要導入MongoDB中一個大的JSON數據集我們有工作像mongoimport效用:通過MongoID

mongoimport --host xxx.xxx.xxx.xxx --db destination-db -c tags < tmp/source-file.json 

有沒有辦法叫「mongoimport」使用MongoID,紅寶石對象-Document-Mapper for MongoDB?

感謝 盧卡

+0

你有這樣的理由嗎? – lobster1234 2011-04-25 08:54:09

+0

將'業務邏輯'體現在rails應用程序中,避免了在crontab中使用'external'shell命令或其他東西,這成爲了平臺的依賴。例如,你會如何使用mongoimport與Heroku? – 2011-04-25 09:42:00

+0

因此,你有一個出口(通過哪個進程?),並且你想要使用代碼導入,而不是實用程序? – lobster1234 2011-04-25 09:45:18

回答

2

Mongoid實際上是圍繞Ruby驅動程序的包裝。 Ruby驅動程序應該允許您運行任何數據庫命令。

但是,mongoimport不是一個命令。 mongoimport是一個單獨的二進制(或可執行文件)文件。

從Ruby運行mongoimport的唯一方法是「shell out」。通常這涉及使用某種形式的exec命令。這是running shell commands from Ruby的第一個搜索鏈接。

+0

感謝蓋茨副總裁非常有用的文章。我終於得到了作業運行系統(「mongoimport --host localhost --db myDB --collection repo --file tags.json -f repositories」) – 2011-04-26 21:18:15

1

您也可以從您的文件解析JSON,並直接在rake任務中運行Model.create(json_obj)Mode.save

+0

好主意謝謝chug2k – 2011-06-13 22:11:30