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

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 pymongo
import 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 dict
doc=widgets.find_one({"name": "flibnip"})
print doc
print doc['name']
#json模塊並不知道如何轉換MongoDB的ObjectID類型到JSON,處理方法:在序列化之前從字典裏刪除_id鍵
del doc["_id"]
jdoc=json.dumps(doc)
print "json format:\n",jdoc


widgets.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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章