• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

python对mongodb操作

mongodb是一个nosql数据库,无结构化、和去中心化。

python是一门优雅而且健壮的语言。

python使用mongo,也被很多场景中会用到,幕客最近在作一个后台系统,其中:

日志的记录,用户分析就用到了mongo这个数据库来作。

那为什么要用mongo来存呢?

首先、数据关系复杂,没有表连接,结构化弱。

然后、利用mongo全文索引查找方便

最好、数据不重要,记录的日志数据库。意外丢失风险可以接受。

说了这么多,接下来幕客先给大家说说对mongo的CURD,如下:

 

一、安装mongo的支持

sudo /opt/python2.7.13/bin/pip install pymongo

 

二、简单操作

1) 数据库实例创建

In [1]: import pymongo

In [2]: pymongo.MongoClient('192.168.8.237',27017)
Out[2]: MongoClient(host=['192.168.8.237:27017'], document_class=dict, tz_aware=False, connect=True)

In [3]: mgc = pymongo.MongoClient('192.168.8.237',27017)

2)插入数据

In [4]: db = mgc['iops']    
In [10]: col.insert_one(content)
Out[10]: <pymongo.results.InsertOneResult at 0x104907e60>

3)数据查找,确认插入成功

> db.logrecord.find()

{ "_id" : ObjectId("5a27b65dfa121a84df126d8c"), "status" : "success", "stepid" : 2, "stepinfo" : "ok! finished", "taskid" : 23432 }

 

4)直接通过python的对象获取内容

In [12]: col.find_one()
Out[12]: 
{u'_id': ObjectId('5a27b65dfa121a84df126d8c'),
 u'status': u'success',
 u'stepid': 2,
 u'stepinfo': u'ok! finished',
 u'taskid': 23432}

 

(5) 通过查询条件查询

查询成功的内容

In [13]: col.find_one({'status':'success'})
Out[13]: 
{u'_id': ObjectId('5a27b65dfa121a84df126d8c'),
 u'status': u'success',
 u'stepid': 2,
 u'stepinfo': u'ok! finished',
 u'taskid': 23432}

 

(6) 更新数据

col.update_one({"stepid":2},{"$set":{"stepid":3}})

 

(7) 获取所有的集合

相当于show tables获取集合操作

In [11]: db.collection_names()
Out[11]: [u'opts', u'logrecord']

 

python对mongodb操作

Pingbacks已打开。

引用地址

暂无评论

发表评论