2012-12-21 90 views
2

我是mongoDB和pymongo的新手,試圖學習如何從/向磁盤加載和保存數據庫,以便我可以隨身攜帶並將它發送給人員等。我已閱讀http://api.mongodb.org/python/current/tutorial.html的教程,但找不到有關保存和加載數據庫的有用信息。使用pymongo加載和保存mongoDB數據庫從/到磁盤

假設我們創建這樣一個數據庫:

import pymongo 
mongo = pymongo.Connection() 
db = mongo['my_db'] 
col = db['my_col'] 
col.insert({'name': 'Adam','occupation': 'student'}) 
col.insert({'name': 'John','occupation': 'officer'}) 
#how can we save the database to disk after this point 
#and later read it from another program? 
+0

讀這首先http://api.mongodb.org/ python/current/tutorial.html –

+0

事實上,我確實沒有保存和加載db的信息。 – MHardy

+0

我不明白你在問什麼。 'insert'將數據保存到數據庫。如果您將「從/到磁盤」加載到哪裏,您希望它加載到哪裏?我想你可能需要在這裏瞭解數據庫的基礎知識。 – Sammaye

回答

7

MongoDB的文件是便攜,有一對夫婦的方式來實現你在找什麼:

  • 將數據複製目錄mongod到另一臺電腦。此目錄通常基於/data/db/mongodb。在另一臺計算機上,您只需將複製的目錄替換爲遠程目錄,然後重新啓動遠程目錄mongod,此時您的系統上會有數據。據我所知,MongoDB在這裏沒有熱插拔功能,因此您可以按需切換目錄,而無需停機。

  • 對數據進行熱備份,並使用MongoDB導出和導入功能選擇要放置到遠程計算機上的數據子集。您可以通過mongodumpmongorestore進行熱備份。您可以在這裏找到一般文檔頁面:http://docs.mongodb.org/manual/administration/backups/#using-binary-database-dumps-for-backups

  • 使CSV/JSON導出您的數據並將其導入遠程計算機。這非常類似於這個特定場景中的二進制備份,除了它們對終端方更具可讀性之外,我還應該注意,這種方法只能插入,它與批量插入客戶端迭代(類似於PHP)相同,一個CSV並在MongoDB服務器上調用批量插入。你可以在這裏找到有關mongoexportmongoimport更多的信息(即做這個節目):http://docs.mongodb.org/manual/administration/import-export/

您還可以找到與數據備份,移動它,並恢復它在這裏的外國機器很好的常規信息: http://docs.mongodb.org/manual/administration/backups/

3
  • 要使用pymongo你做了什麼足以插入MongoDB中一個新的條目。即這樣

    col.insert({ '名': '約翰', '職業': '官'})

將集合中自動保存這些條目。您也可以使用pymongo這樣更改的條目:

col.update({'name': 'Adam'},{'$set':{'occupation': 'officer'}}) 

也是它一個很好的做法,收於年底連接:

mongo.close() 
相關問題