mongodb under ubuntu

mongodb 相比于mysql的一大优点是可以方便的横向扩展. 也就是当一台机器不够用的时候从一台机器扩展到一个集群. 而相对于hbase这样的工具来说, 又相对简单. 因此决定使用mongodb了.
本文提供了ubuntu下安装mongodb , 并利用python来操作mongdb的简单实例.

安装

sudo apt-get install mongodb 

安装完后,缺省的设置如下

dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017
# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

安装完后,缺省会启动. 利用mongo进入shell. 进入之后,缺省进入test数据库. 要创建新的数据库, 直接使用use . 然后数据插入时新的数据库会被创建. 注意数据库的名字中不能用”.” , 不然mongo会说这是一个无效的数据库名字.

xuyang@xuyang-ubuntu:~/python_scrapy/helloworld$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> show dbs
local   0.078125GB
test    (empty)
> use zbj_com  #这是新的数据库的名字
switched to db zbj_com
> db.tasks.insert({"tid":1,"title":"hello world"})
> show dbs    #可见新的数据库被建立
local   0.078125GB
test    (empty)
zbj_com 0.203125GB
>exit

下面是python中处理mongo DB 的实例: , 需要安装pymongo

xuyang@xuyang-ubuntu:~/python_scrapy/helloworld/helloworld$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pymongo import MongoClient
>>> client  = MongoClient("mongodb://localhost:27017")    #链接数据库
>>> db = client['zbj_com']     #选取数据库
>>> db.tasks.find_one()     #从集合中选取 , 这里可以直接用集合的名字
{u'tid': 1.0, u'_id': ObjectId('56763e6107c77c0053c77dee'), u'title': u'hello world'}
>>> db.tasks.insert_one({"tid":2,"title":" hello world 2"})   #插入

>>> db.tasks.find_one()
{u'tid': 1.0, u'_id': ObjectId('56763e6107c77c0053c77dee'), u'title': u'hello world'}
>>> db.tasks.find_one({"tid":2})    #选取tid = 2的数据
{u'tid': 2, u'_id': ObjectId('5676428df4aa4915a4711139'), u'title': u' hello world 2'}
>>> db.tasks.insert_many([{"tid":3,"title":"hello world 3"},{"tid":4,"title":"hello world 4"}])

>>> res=db.tasks.find({"tid":{"$gt":2}})    #选取tid > 2的数据
>>> res[0]
{u'tid': 3, u'_id': ObjectId('567642fbf4aa4915a471113a'), u'title': u'hello world 3'}
>>> res[1]
{u'tid': 4, u'_id': ObjectId('567642fbf4aa4915a471113b'), u'title': u'hello world 4'}
>>> 


本文地址: http://www.bagualu.net/wordpress/archives/5076 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注