Ubuntu安裝MongoDB,並通過pip安裝python pymongo驅動、簡單使用

來源:互聯網
上載者:User

Ubuntu知識補充:
chown -R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更)
nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。

MongoDB服務端可運行在Linux、Windows或OS X平台,支援32位和64位應用,預設連接埠為27017。推薦運行在64位平台,因為MongoDB在32位元模式運行時支援的最大檔案尺寸為2GB。
MongoDB把資料存放區在檔案中(預設路徑為:/data/db),為提高效率使用記憶體對應檔進行管理。
step1 : 下載二進位包
step2 : 解壓
tar zxvf mongodb-linux-x86_64-2.2.0.tgz
將解壓後的檔案夾複製到usr目錄下
sudo mv mongodb-linux-x86_64-2.2.0 mongodb
step3 : 建立mongodb需要的存放資料和日誌的目錄:
在目前的目錄下輸入如下命令,建立使用者 :

添加一個mongodb使用者:sudo adduser mongodb設定密碼:sudo passwd mongodb sudo mkdir -p /data/db

把”/data/db/”的屬主改成mongodb使用者

$ sudo chown mongodb /data/db/$ sudo chown -R mongodb:mongodb /data

當然可以通過–dbpath 命令 指定MongoDB將資料存放區到另外的目錄中去。
MongoDB預設的資料目錄為/data/db/。如修改為其它不同路徑,啟動時需在–dbpath指出。也可以在主設定檔中指出
在運行下面的語句之前需要安裝一下mongo shell 否則會收到提示:程式“mongo”尚未安裝。

$ apt-get install mongodb-clients

p4 : 啟動mongodb服務

$ ./mongodb/bin/mongod

此處我無法啟動,Error: couldn’t connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91

經過各種查閱資料,大多數的解決辦法是刪掉/data/db/下的lock檔案,然而博主並沒有找到這個檔案,試問刪毛線,瞬間蒙圈,幾經周折,發現給出的錯誤資訊居然是沒有許可權建立lock檔案,瞬間無語。

sudo ./mongodb/bin/mongod

好用了,ctrl+C終止服務
另起一個終端,輸入,./mongodb/bin/mongo
登入到mongodb shell
推薦兩篇更詳細的部落格
http://blog.csdn.net/csfreebird/article/details/6737127
http://blog.sina.com.cn/s/blog_788e5b7a01018bs5.html
http://www.cnblogs.com/xiaogangqq123/archive/2011/04/26/2029426.html
http://www.cnblogs.com/xiaogangqq123/archive/2011/04/26/2029426.html
退出:>exit
安裝pip,並通過此來安裝pymongo–python mongodb驅動
step1 :
http://pypi.python.org/packages/source/p/pip/pip-1.0.2.tar.gz#md5=47ec6ff3f6d962696fe08d4c8264ad49
step2 : 解壓安裝
tar -xvf pip-1.0.2.tar.gz
cd pip-1.0.2
python setup.py install
step3:安裝Python for Mongo的驅動
sudo pip install pymongo
以後可以直接通過pip來更新pymongo
pip –upgrade pymongo
直接安裝
sudo apt-get install python-pymongo 在Python中的簡單使用

首先開啟mongo服務

#-*-coding:utf-8-*-import pymongoimport json#connect to database串連運行在本地機器上預設連接埠(27017)上的MongoDB伺服器conn = pymongo.Connection("localhost", 27017)#通過對象屬性或像字典一樣使用對象來獲得代表一個特定資料庫的對象。如果資料庫不存在,則被自動建立db = conn['example']#db = conn.example# 插入第一個文檔時,MongoDB會自動建立集合widgets = db['widgets']#widgets = db.widgets # insert方法指定一個Python字典來插入文檔widgets.insert({"name": "flibnip", "description": "grade-A industrial flibnip", "quantity": 3})# 在資料庫物件上調用collection_names方法獲得資料庫中的集合列表print "the list of collections:\n",db.collection_names()# 取出文檔,doc's type is dictdoc=widgets.find_one({"name": "flibnip"})print docprint doc['name']#json模組並不知道如何轉換MongoDB的ObjectID類型到JSON,處理方法:在序列化之前從字典裡刪除_id鍵del doc["_id"]jdoc=json.dumps(doc)print "json format:\n",jdocwidgets.insert({"name": "smorkeg", "description": "for external use only", "quantity": 4})widgets.insert({"name": "clobbasker", "description": "properties available on request", "quantity": 2})# 調用集合的find方法來獲得集合中所有文檔的列表print "list of all documents:"for doc in widgets.find():    print doc# 獲得文檔的一個子集print "the list of the documents whose quantity is 4:"for doc in widgets.find({"quantity": 4}):    print doc# 刪除所有name鍵的值為flipnip的文檔widgets.remove({"name": "flibnip"})

更多MongoDB的使用:
http://www.cnblogs.com/TankMa/archive/2011/06/08/2074947.html
借鑒:
http://www.cnblogs.com/myblog-lyc/p/4331756.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.