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程序设计入门(3)数组的使用
Jun 16 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
python 实现矩阵填充0的例子
Nov 29 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
python开发一款翻译工具
Oct 10 Python
python爬虫用request库处理cookie的实例讲解
Feb 20 Python
解决python的空格和tab混淆而报错的问题
Feb 26 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
python实现跨文件全局变量的方法
2014/07/07 Python
Python函数中定义参数的四种方式
2014/11/30 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
网吧最新创业计划书范文
2014/03/27 职场文书
《穷人》教学反思
2014/04/08 职场文书
食品安全汇报材料
2014/08/18 职场文书
元旦标语大全
2014/10/09 职场文书
安全生产工作汇报
2014/10/28 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
mysql事务对效率的影响分析总结
2021/10/24 MySQL