• python操作MongoDB


    首先运行easy_install pymongo命令安装pymongo驱动。然后执行操作:

    创建连接

    1 In [1]: import pymongo
    2 
    3 In [2]: connection = pymongo.Connection('localhost', 27017)

    切换到数据库malware

    In [3]: db = connection.malware

    获取collection

    1 In [4]: collection = db.malware

    注意:db和collection都是延时创建的,在添加Document时才真正创建

    Document添加,_id会自动创建

    1 In [6]: post = {"name":"a.privacy.GingerMaster.a", "family":"GingMaster", "category":"隐私窃取", "behavior":"非法获取手机root权限,强制开机自启动、强制联网、窃 取并上传用户手机中的IMEI、IMSI、SIM卡信息等隐私内容,还会将病毒组件伪装成PNG图片,从后台静默下载、安装恶意软件,消耗用户流量"}
    2 
    3 In [7]: malinfo = db.posts
    4 
    5 In [9]: malinfo.insert(post)
    6 Out[9]: ObjectId('52727c5b3387e31671aa91b1')

    获取所有collection(相当于SQL的show tables)

    1 In [10]: db.collection_names()
    2 Out[10]: [u'system.indexes', u'posts']

    获取单个文档

    1 In [11]: malinfo.find_one()
    2 Out[11]:
    3 {u'_id': ObjectId('52727c5b3387e31671aa91b1'),
    4  u'behavior': u'u975eu6cd5u83b7u53d6u624bu673arootu6743u9650uff0cu5f3au5236u5f00u673au81eau542fu52a8u3001u5f3au5236u8054u7f51u3001u7a83u53d6u5e76u4e0au4f20u7528u6237u624bu673au4e2du7684IMEIu3001IMSIu3001SIMu5361u4fe1u606fu7b49u9690u79c1u5185u5bb9uff0cu8fd8u4f1au5c06u75c5u6bd2u7ec4u4ef6u4f2au88c5u6210PNGu56feu7247uff0cu4eceu540eu53f0u9759u9ed8u4e0bu8f7du3001u5b89u88c5u6076u610fu8f6fu4ef6uff0cu6d88u8017u7528u6237u6d41u91cf',
    5  u'category': u'u9690u79c1u7a83u53d6',
    6  u'family': u'GingMaster',
    7  u'name': u'a.privacy.GingerMaster.a'}

    批量插入

    1 In [12]: new_posts = [{"name":"a.payment.FakeInst.a", "family":"FakeInst", "category":"恶意扣费", "behavior":"后台发送扣费短信"}, {"name":"a.payment.Umeng.a", "family":"Umeng", "category":"恶意扣费", "behavior":"1. 后台从服务器端获取指令, 自动发送短信,订制扣费服务,并拦截指定号码短信。 2. 后台从服务器端获取指令,自动模拟访问广告,消耗用户流量"}]
    2 
    3 In [13]: malinfo.insert(new_posts)
    4 Out[13]: [ObjectId('527281323387e31671aa91b2'), ObjectId('527281323387e31671aa91b3')]

    获取所有collection(相当于SQL的show tables)

    1 In [14]: db.collection_names()
    2 Out[14]: [u'system.indexes', u'posts']  

    查询多个文档

    1 In [18]: for info in malinfo.find():
    2    ....:     print info
    3    ....:     
    4 {u'category': u'u9690u79c1u7a83u53d6', u'_id': ObjectId('52727c5b3387e31671aa91b1'), u'name': u'a.privacy.GingerMaster.a', u'family': u'GingMaster', u'behavior': u'u975eu6cd5u83b7u53d6u624bu673arootu6743u9650uff0cu5f3au5236u5f00u673au81eau542fu52a8u3001u5f3au5236u8054u7f51u3001u7a83u53d6u5e76u4e0au4f20u7528u6237u624bu673au4e2du7684IMEIu3001IMSIu3001SIMu5361u4fe1u606fu7b49u9690u79c1u5185u5bb9uff0cu8fd8u4f1au5c06u75c5u6bd2u7ec4u4ef6u4f2au88c5u6210PNGu56feu7247uff0cu4eceu540eu53f0u9759u9ed8u4e0bu8f7du3001u5b89u88c5u6076u610fu8f6fu4ef6uff0cu6d88u8017u7528u6237u6d41u91cf'}
    5 {u'category': u'u6076u610fu6263u8d39', u'_id': ObjectId('527281323387e31671aa91b2'), u'name': u'a.payment.FakeInst.a', u'family': u'FakeInst', u'behavior': u'u540eu53f0u53d1u9001u6263u8d39u77edu4fe1'}
    6 {u'category': u'u6076u610fu6263u8d39', u'_id': ObjectId('527281323387e31671aa91b3'), u'name': u'a.payment.Umeng.a', u'family': u'Umeng', u'behavior': u'1. u540eu53f0u4eceu670du52a1u5668u7aefu83b7u53d6u6307u4ee4uff0cu81eau52a8u53d1u9001u77edu4fe1uff0cu8ba2u5236u6263u8d39u670du52a1uff0cu5e76u62e6u622au6307u5b9au53f7u7801u77edu4fe1u3002 2. u540eu53f0u4eceu670du52a1u5668u7aefu83b7u53d6u6307u4ee4uff0cu81eau52a8u6a21u62dfu8bbfu95eeu5e7fu544auff0cu6d88u8017u7528u6237u6d41u91cf'}

    加条件的查询

    1 In [19]: malinfo.find_one({"family":"FakeInst"})
    2 Out[19]:
    3 {u'_id': ObjectId('527281323387e31671aa91b2'),
    4  u'behavior': u'u540eu53f0u53d1u9001u6263u8d39u77edu4fe1',
    5  u'category': u'u6076u610fu6263u8d39',
    6  u'family': u'FakeInst',
    7  u'name': u'a.payment.FakeInst.a'}

    统计数量

    1 In [20]: malinfo.count()
    2 Out[20]: 3
  • 相关阅读:
    上班中午
    有些确实牛擦的有点嚣张!!! (zz)
    Docker学习笔记(二)
    结对项目第二阶段小结
    软件工程结课总结
    案例分析作业
    结对编程总结
    Docker学习笔记(一)
    四则运算
    构建之法1~5章
  • 原文地址:https://www.cnblogs.com/goodhacker/p/3400654.html
Copyright © 2020-2023  润新知