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 相关文章推荐
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
Flask框架web开发之零基础入门
Dec 10 Python
Python元组常见操作示例
Feb 19 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
Python 通过打码平台实现验证码的实现
May 13 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
python学生管理系统的实现
Apr 05 Python
Python新手学习标准库模块命名
May 29 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
关于 Python json中load和loads区别
Nov 07 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
数据库相关问题
2006/10/09 PHP
多php服务器实现多session并发运行
2006/10/09 PHP
php Ajax乱码
2008/04/09 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
php获取后台Job管理的实现代码
2011/06/10 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
js图片处理示例代码
2014/05/12 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
Python字符串转换成浮点数函数分享
2015/07/24 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
幼儿如何来做好自我评价
2013/11/05 职场文书
公司中秋节活动方案
2014/02/12 职场文书
班子四风对照检查材料
2014/08/21 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS