zoukankan      html  css  js  c++  java
  • MongoDB

     

    uri = 'mongodb://user:pass@39.108.29.203:27017/database'
    client = MongoClient(uri)

    保存图片(二进制)

    from pymongo import MongoClient
    from gridfs import *
    import os
    #链接mongodb
    client=MongoClient('localhost',27017)
    #取得对应的collection
    db=client.image
    #本地硬盘上的图片目录
    dirs = 'H:PYTHON-DUJUNday999-spiderdbmongodb'
    #列出目录下的所有图片
    files = os.listdir(dirs)
    #遍历图片目录集合
    for file in files:
        #图片的全路径
        filesname = dirs + '\' + file
        #分割,为了存储图片文件的格式和名称
        f = file.split('.')
        #类似于创建文件
        datatmp = open(filesname, 'rb')
        #创建写入流
        imgput = GridFS(db)
        #将数据写入,文件类型和名称通过前面的分割得到
        insertimg=imgput.put(datatmp,content_type=f[1],filename=f[0])
        datatmp.close()
    print("保存成功")
    

      

    提取图片(二进制)

    from pymongo import MongoClient
    from gridfs import *
    client=MongoClient('localhost',27017)
    db=client.image
    #给予girdfs模块来写出,其中collection为上一步生成的,我不知道怎么该名称。实际上是由fs.flies和fs.chunks组成
    gridFS = GridFS(db, collection="fs")
    count=0
    for grid_out in gridFS.find():
        count+=1
        print(count)
        data = grid_out.read() # 获取图片数据
        outf = open('%s.png' %count,'wb')#创建文件
        outf.write(data)  # 存储图片
        print('ok')
        outf.close()
    

      

    https://www.cnblogs.com/zhangxinqi/p/9242687.html

    自建一个json格式的数据

     mongodb curd

    https://www.imooc.com/article/21772

    那为什么要用mongo来存呢?

    首先、数据关系复杂,没有表连接,结构化弱。

    然后、利用mongo全文索引查找方便

    最好、数据不重要,记录的日志数据库。意外丢失风险可以接受。

    说了这么多,接下来幕客先给大家说说对mongo的CURD,如下:

    一、安装mongo的支持

    sudo /opt/python2.7.13/bin/pip install pymongo

    二、简单操作

    1) 数据库实例创建

    In [1]: import pymongo
    
    In [2]: pymongo.MongoClient('192.168.8.237',27017)
    
    Out[2]: MongoClient(host=['192.168.8.237:27017'], document_class=dict, tz_aware=False, connect=True)
    
    In [3]: mgc = pymongo.MongoClient('192.168.8.237',27017)

    2)插入数据

    In [4]: db = mgc['iops'] 
    In [10]: col.insert_one(content)
    Out[10]: <pymongo.results.InsertOneResult at 0x104907e60>

    3)数据查找,确认插入成功

    > db.logrecord.find()
    
    { "_id" : ObjectId("5a27b65dfa121a84df126d8c"), "status" : "success", "stepid" : 2, "stepinfo" : "ok! finished", "taskid" : 23432 }

    4)直接通过python的对象获取内容

    In [12]: col.find_one()
    
    Out[12]:
    
    {u'_id': ObjectId('5a27b65dfa121a84df126d8c'),
    
    u'status': u'success',
    
    u'stepid': 2,
    
    u'stepinfo': u'ok! finished',
    
    u'taskid': 23432}

    (5) 通过查询条件查询

    查询成功的内容

    In [13]: col.find_one({'status':'success'})
    Out[13]:
    {u'_id': ObjectId('5a27b65dfa121a84df126d8c'),
    u'status': u'success',
    u'stepid': 2,
    u'stepinfo': u'ok! finished',
    u'taskid': 23432}

    (6) 更新数据

    col.update_one({"stepid":2},{"$set":{"stepid":3}})

    (7) 获取所有的集合

    相当于show tables获取集合操作

    In [11]: db.collection_names()
    Out[11]: [u'opts', u'logrecord']
  • 相关阅读:
    Python学习笔记:pandas.read_csv分块读取大文件(chunksize、iterator=True)
    Python学习笔记:os.stat().st_size、os.path.getsize()获取文件大小
    7-1 打印沙漏
    7-1 币值转换
    7-1 抓老鼠啊~亏了还是赚了?
    第四周编程总结哦也
    2018秋寒假作业6—PTA编程总结3
    PTA编程总结3
    PTA编程总结1
    秋季学期学习总结
  • 原文地址:https://www.cnblogs.com/du-jun/p/10403215.html
Copyright © 2011-2022 走看看