python操作MongoDB基础知识
admin
2023-07-31 02:02:24
0

首先运行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

 

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...