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 从远程服务器下载东西的代码
Feb 10 Python
python计算圆周长、面积、球体体积并画出圆
Apr 08 Python
详解Python中find()方法的使用
May 18 Python
python使用win32com库播放mp3文件的方法
May 30 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python学习笔记之if语句的使用示例
Oct 23 Python
使用Python写一个小游戏
Apr 02 Python
python 保存float类型的小数的位数方法
Oct 17 Python
查看端口并杀进程python脚本代码
Dec 17 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
python 6行代码制作月历生成器
Sep 18 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
node中的session的具体使用
2018/09/14 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python实现维吉尼亚加密法
2019/03/20 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
.NET现在共支持多少种语言
2014/02/26 面试题
给老师的检讨书
2014/02/11 职场文书
农业项目建议书
2014/08/25 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers