pymongo连接MongoDB系列一

导语

pymongo 是目前用的相对普遍一个python用来连接MongoDB的库,是工作中各种基本需求都能满足
具体api可以参考 pymongo API
pymongo github


安装 MongoDB

为了测试pyMongo连接mongodb,首先当然需要在centos下安装mongo,详细参考 Centos下安装MongoDB

安装 pymongo

如果没有pip, 建议先安装,至于为啥要用pip你懂得

yum install python-pip

pip 安装 pymongo

pip install pymongo

查看 pymongo是否安装成功

root@pts/4 $ python
Python 2.7.5 (default, Nov 20 2015, 02:00:19) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymongo        
>>> pymongo.version
'3.2.2'

使用 pymongo

连接到 MongoDB

有两种方式,等同

>>> client = pymongo.MongoClient('192.168.100.3', 27017)
>>> print client
MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True)
>>> client2 = pymongo.MongoClient('mongodb://192.168.100.3:27017/')
>>> print client2
MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True)
>>> 

得到 db 和 collection

有时候在脚本中会把 db 和 collection 作为参数使用,可以参考第二种方式

直接链接
>>> db = client.report
>>> print db
Database(MongoClient(host=[‘192.168.100.3:27017’], document_class=dict, tz_aware=False, connect=True), u’report’)
>>> collection = db.source_register
>>> print collection
Collection(Database(MongoClient(host=[‘192.168.100.3:27017’], document_class=dict, tz_aware=False, connect=True), u’report’), u’source_register’)
>>>

参数链接, 这种形式又有两种方法

## 定义参数
>>> pramadb = 'report'
>>> pramacoll = 'source_register'

## get db 
>>> db2 = client[pramadb]
>>> db3 = client.get_database(pramadb)
>>> print db2
Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report')
>>> print db3
Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report')
>>> 

## get collection 
>>> coll2 = db2[pramacoll]
>>> coll3 = db3.get_collection(pramacoll)
>>> print coll2
Collection(Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report'), u'source_register')
>>> print coll3
Collection(Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report'), u'source_register')
>>> 

常规操作举例

## insert or save 
>>> mydict = {"name":"James", "age": 28}
>>> collection.save(mydict)
ObjectId('57fdf212bcd34f48c4fce15a')


## find
>>> collection.find({"name":"James"})[0]
{u'age': 28, u'_id': ObjectId('57fdf212bcd34f48c4fce15a'), u'name': u'James'}
>>> 

^_^ ^_^ ^_^ 未完待续… ^_^ ^_^ ^_^


公众号: DailyJobOps DailyJobOps

Centos下安装MongoDB

导语

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。


安装

Centos下安装MongoDB有多种方式,这里介绍yum安装和tar包安装两种方式

YUM 安装

在 /etc/yum.repos.d/下面新增文件 mongodb.repo

root@pts/2 $ cat mongodb.repo 
[mongodb]
name=MongoDB repo
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

yum安装

yum install mongodb-org mongodb-org-server

Tar 安装

# download page
http://www.mongodb.org/downloads

# use `wget` or `curl` to get file
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 

# untar 
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz   

# move to appropriate path
mv mongodb-linux-x86_64-3.0.6 /usr/local/mongodb

Configure

## add mongodba user
useradd mongodba

## create configuration and data folder, then set privilege
mkdir -p /usr/local/mongodb/{conf,data}
chown -R mongodba:mongodba /usr/local/mongodb/

## add below command into /etc/profile
MONGO_HOME=/usr/local/mongodb
PATH=$PATH:$JAVA_HOME/bin:${MONGO_HOME}/bin

Verify

无论哪种安装方式最终都采用如下方式验证是否安装成功

root@pts/2 $ mongod --version
db version v3.0.6
git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2

附加

## start mongo
mongod --dbpath /usr/local/mongodb/data/ --logpath /var/log/mongod.log --logappend &

## mongo shell
## you can use mongo or /usr/local/mongodb/bin/mongo
root@pts/2 $ mongo
MongoDB shell version: 3.0.6
connecting to: test

公众号: DailyJobOps DailyJobOps