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 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
Python写的服务监控程序实例
Jan 31 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
深入浅析python 中的匿名函数
May 21 Python
对Python中9种生成新对象的方法总结
May 23 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 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面向对象法则
2012/02/23 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
python opencv实现运动检测
2018/07/10 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
办公室助理岗位职责
2013/12/25 职场文书
搞笑征婚广告词
2014/03/17 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
低碳环保口号
2014/06/12 职场文书
销售类求职信
2014/06/13 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
旗帜观后感
2015/06/08 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL