python操作MongoDB基础知识


Posted in Python onNovember 01, 2013

首先运行easy_install pymongo命令安装pymongo驱动。然后执行操作:
创建连接

In [1]: import pymongo
In [2]: connection = pymongo.Connection('localhost', 27017)

切换到数据库malware
In [3]: db = connection.malware

获取collection
 In [4]: collection = db.malware

注意:db和collection都是延时创建的,在添加Document时才真正创建Document添加,_id会自动创建
In [6]: post = {"name":"a.privacy.GingerMaster.a", "family":"GingMaster", "category":"隐私窃取", "behavior":"非法获取手机root权限,强制开机自启动、强制联网、窃 取并上传用户手机中的IMEI、IMSI、SIM卡信息等隐私内容,还会将病毒组件伪装成PNG图片,从后台静默下载、安装恶意软件,消耗用户流量"}
In [7]: malinfo = db.posts
In [9]: malinfo.insert(post)
Out[9]: ObjectId('52727c5b3387e31671aa91b1')

获取所有collection(相当于SQL的show tables)
In [10]: db.collection_names()
 Out[10]: [u'system.indexes', u'posts']

获取单个文档
In [11]: malinfo.find_one()
Out[11]:
{u'_id': ObjectId('52727c5b3387e31671aa91b1'),
 u'behavior': u'\u975e\u6cd5\u83b7\u53d6\u624b\u673aroot\u6743\u9650\uff0c\u5f3a\u5236\u5f00\u673a\u81ea\u542f\u52a8\u3001\u5f3a\u5236\u8054\u7f51\u3001\u7a83\u53d6\u5e76\u4e0a\u4f20\u7528\u6237\u624b\u673a\u4e2d\u7684IMEI\u3001IMSI\u3001SIM\u5361\u4fe1\u606f\u7b49\u9690\u79c1\u5185\u5bb9\uff0c\u8fd8\u4f1a\u5c06\u75c5\u6bd2\u7ec4\u4ef6\u4f2a\u88c5\u6210PNG\u56fe\u7247\uff0c\u4ece\u540e\u53f0\u9759\u9ed8\u4e0b\u8f7d\u3001\u5b89\u88c5\u6076\u610f\u8f6f\u4ef6\uff0c\u6d88\u8017\u7528\u6237\u6d41\u91cf',
 u'category': u'\u9690\u79c1\u7a83\u53d6',
 u'family': u'GingMaster',
 u'name': u'a.privacy.GingerMaster.a'}

批量插入
In [12]: new_posts = [{"name":"a.payment.FakeInst.a", "family":"FakeInst", "category":"恶意扣费", "behavior":"后台发送扣费短信"}, {"name":"a.payment.Umeng.a", "family":"Umeng", "category":"恶意扣费", "behavior":"1. 后台从服务器端获取指令, 自动发送短信,订制扣费服务,并拦截指定号码短信。 2. 后台从服务器端获取指令,自动模拟访问广告,消耗用户流量"}]
In [13]: malinfo.insert(new_posts)
Out[13]: [ObjectId('527281323387e31671aa91b2'), ObjectId('527281323387e31671aa91b3')]

获取所有collection(相当于SQL的show tables)
In [14]: db.collection_names()
Out[14]: [u'system.indexes', u'posts'] 

查询多个文档
In [18]: for info in malinfo.find():
   ....:     print info
   ....:     
{u'category': u'\u9690\u79c1\u7a83\u53d6', u'_id': ObjectId('52727c5b3387e31671aa91b1'), u'name': u'a.privacy.GingerMaster.a', u'family': u'GingMaster', u'behavior': u'\u975e\u6cd5\u83b7\u53d6\u624b\u673aroot\u6743\u9650\uff0c\u5f3a\u5236\u5f00\u673a\u81ea\u542f\u52a8\u3001\u5f3a\u5236\u8054\u7f51\u3001\u7a83\u53d6\u5e76\u4e0a\u4f20\u7528\u6237\u624b\u673a\u4e2d\u7684IMEI\u3001IMSI\u3001SIM\u5361\u4fe1\u606f\u7b49\u9690\u79c1\u5185\u5bb9\uff0c\u8fd8\u4f1a\u5c06\u75c5\u6bd2\u7ec4\u4ef6\u4f2a\u88c5\u6210PNG\u56fe\u7247\uff0c\u4ece\u540e\u53f0\u9759\u9ed8\u4e0b\u8f7d\u3001\u5b89\u88c5\u6076\u610f\u8f6f\u4ef6\uff0c\u6d88\u8017\u7528\u6237\u6d41\u91cf'}
{u'category': u'\u6076\u610f\u6263\u8d39', u'_id': ObjectId('527281323387e31671aa91b2'), u'name': u'a.payment.FakeInst.a', u'family': u'FakeInst', u'behavior': u'\u540e\u53f0\u53d1\u9001\u6263\u8d39\u77ed\u4fe1'}
{u'category': u'\u6076\u610f\u6263\u8d39', u'_id': ObjectId('527281323387e31671aa91b3'), u'name': u'a.payment.Umeng.a', u'family': u'Umeng', u'behavior': u'1. \u540e\u53f0\u4ece\u670d\u52a1\u5668\u7aef\u83b7\u53d6\u6307\u4ee4\uff0c\u81ea\u52a8\u53d1\u9001\u77ed\u4fe1\uff0c\u8ba2\u5236\u6263\u8d39\u670d\u52a1\uff0c\u5e76\u62e6\u622a\u6307\u5b9a\u53f7\u7801\u77ed\u4fe1\u3002 2. \u540e\u53f0\u4ece\u670d\u52a1\u5668\u7aef\u83b7\u53d6\u6307\u4ee4\uff0c\u81ea\u52a8\u6a21\u62df\u8bbf\u95ee\u5e7f\u544a\uff0c\u6d88\u8017\u7528\u6237\u6d41\u91cf'}

加条件的查询
In [19]: malinfo.find_one({"family":"FakeInst"})
Out[19]:
{u'_id': ObjectId('527281323387e31671aa91b2'),
 u'behavior': u'\u540e\u53f0\u53d1\u9001\u6263\u8d39\u77ed\u4fe1',
 u'category': u'\u6076\u610f\u6263\u8d39',
 u'family': u'FakeInst',
 u'name': u'a.payment.FakeInst.a'}

统计数量
In [20]: malinfo.count()
Out[20]: 3

 

Python 相关文章推荐
介绍Python中内置的itertools模块
Apr 29 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
Python实现购物车程序
Apr 16 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python区分不同数据类型的方法
Oct 14 Python
使用python绘制二维图形示例
Nov 22 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
django ListView的使用 ListView中获取url中的参数值方式
Mar 27 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
python爬取天气数据的实例详解
Nov 20 Python
python操作MySQL数据库具体方法
Oct 28 #Python
Python sys.path详细介绍
Oct 17 #Python
python开发的小球完全弹性碰撞游戏代码
Oct 15 #Python
python中 ? : 三元表达式的使用介绍
Oct 09 #Python
Python 文件和输入输出小结
Oct 09 #Python
Python 错误和异常小结
Oct 09 #Python
Python 命令行非阻塞输入的小例子
Sep 27 #Python
You might like
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
浅谈vue项目重构技术要点和总结
2018/01/23 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
tornado 多进程模式解析
2018/01/15 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
python和c语言的主要区别总结
2019/07/07 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
美国滑板店:Tactics
2020/11/08 全球购物
学前教育毕业生自荐信
2013/10/29 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
小学班级标语口号大全
2015/12/26 职场文书
求职信如何撰写?
2019/05/22 职场文书