博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB
阅读量:7245 次
发布时间:2019-06-29

本文共 2392 字,大约阅读时间需要 7 分钟。

 

 

保存图片(二进制)

from pymongo import MongoClientfrom gridfs import *import os#链接mongodbclient=MongoClient('localhost',27017)#取得对应的collectiondb=client.image#本地硬盘上的图片目录dirs = 'H:\PYTHON-DUJUN\day999-spider\db\mongodb'#列出目录下的所有图片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 MongoClientfrom gridfs import *client=MongoClient('localhost',27017)db=client.image#给予girdfs模块来写出,其中collection为上一步生成的,我不知道怎么该名称。实际上是由fs.flies和fs.chunks组成gridFS = GridFS(db, collection="fs")count=0for 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]: 

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']

 

转载于:https://www.cnblogs.com/du-jun/p/10403215.html

你可能感兴趣的文章
元素的显示和隐藏:display、visibility、overflow
查看>>
各管理相关的工具和技术
查看>>
『004』索引-Python
查看>>
安装第三方模块
查看>>
SMTP
查看>>
用CSS实现的图片透明度链接效果代码
查看>>
大牛给计算机专业的七个建议
查看>>
[SAN4N学习笔记]使用SysTick精准延时
查看>>
C++ auto_ptr
查看>>
Alpha阶段项目展示
查看>>
zzz KVC/KVO原理详解及编程指南
查看>>
window对象
查看>>
IntelliJ IDEA配置Tomcat 与安装Tomcat失败原因
查看>>
详解Android属性动画
查看>>
【转】关于MySQL函数GROUP_CONCAT的使用
查看>>
正则表达式 处理选项
查看>>
【哈希】身份证问题
查看>>
接口、继承、多态
查看>>
推荐强大易用免费硬盘分区工具DiskGenius
查看>>
[系统资源]/proc/meminfo和free输出解释
查看>>