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常用小技巧总结
Jun 01 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
常用python编程模板汇总
Feb 12 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
python hash每次调用结果不同的原因
Nov 21 Python
Python发送手机动态验证码代码实例
Feb 28 Python
python3中TQDM库安装及使用详解
Nov 18 Python
python中altair可视化库实例用法
Jan 26 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
深入理解Pytorch微调torchvision模型
Nov 11 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实现博客,论坛图片防盗链的方法
2016/10/15 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
jQuery的学习步骤
2011/02/23 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python变量赋值的秘密分享
2018/04/03 Python
python实现猜数字小游戏
2020/03/24 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
python中rb含义理解
2020/06/18 Python
Python打印不合法的文件名
2020/07/31 Python
super()与this()的区别
2016/01/17 面试题
大专自我鉴定范文
2013/10/23 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
信访工作经验交流材料
2014/05/23 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
Python内置数据结构列表与元组示例详解
2021/08/04 Python
Oracle 多表查询基本语法实例
2022/04/18 Oracle