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

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