mongo4

day4


固定集合

mongo中可以创建大小固定的集合,称之为固定集合,固定集合的性能出色,适用于很多场景
比如:日志处理,临时缓存
特点:插入速度快
   顺序查询速度快
   能够淘汰早期数据
   可以控制集合空间
创建:
db.createCollection(collectionName,{capped:true,size:1000,max:1000})
size:设置固定集合的大小 kb
max:最多能容纳多少文档

文件存储

数据库存储文件的方式
1. 在数据库中以字符串的方式存储文件在本地的路劲
优点:节省数据库空间
缺点:当数据库文件位置发生变化即需要修改数据库内容
2. 将文件以二进制数据的方式存放在数据库里
优点:文件存入数据库,数据库在,文件即不会丢失
缺点:当文件较大时,数据库空间占用大,提取困难

mongo中 使用GridFS方法 进行大文件存储

GridFS:是mongodb中大文件存储的一种方案,mongo中认为大于16M的文件为大文件

方案解释:
在mongo数据库中 创建两个集合 共同完成对文件的存储
fs.files:存储文件的相关信息,比如:文件名 文件类型
fs.chunks:实际存储文件内容,以二进制方式分块存储。将大文件分为多个小块,每块占一个空间

*mongofiles -d dbname(数据库) put file(要存储的文件)
*如果数据库不存在则自动创建

获取数据库中的文件
*mongofiles -d dbname(数据库) put file(要提取的文件)

优点:存储方便,方便数据库移植,对文件个数没有太多限制
缺点:读写效率低

游标

为什么使用游标

  1. 防止网络拥塞造成的数据传输慢
  2. 提高用户解析体验,可以后端解析
    var cursor = db.class.find() 创建游标
    cursor.hasNext() 查看是否有下一个数据
    cursor.next() 获取下一个数据

通过Python 操作mongodb数据库

Python —> mongodb编程接口 pymongo

安装
sudo pip3 install pymongo

操作步骤
1. 创建mongo数据库的连接对象
conn = MongoClient(‘localhost’,27017)
2. 生成数据库对象
db = conn.stu
3.生成集合对象
my_set = db.class0
4. 增删改查索引聚合操作

插入数据

insert() insert_many() insert_one() save()

删除数据

remove({},multi = True)
multi 默认为True 表示删除所有符合条件的数据
设置为false 表示只删除一条

数据查找

find()
功能:查找数据库内容
参数:同mongo shell find()
返回值:返回一个游标 —> 迭代器

cursor 可迭代对象属性函数
next()
count()
limit()
skip()
sort()
  mongoshell —> sort({‘name’:1})
  pymongo —> sort([(‘name’,1)])
  *进行排序时游标要确保没有被访问过
find_one()
返回值是一个字典

修改操作

update()
参数和mongoshell 中 update相同

update_many()
匹配到多个文档时全部修改

update_one()
只修改匹配到的第一条文档
*编程中mongo的数据类型null 可以用python中的 None替代

索引

创建索引
ensure_index()
create_index()
create_indexes()创建多个索引

查看集合中的索引
list_indexes()

删除索引
drop_index() 删除某一个索引
drop_index() 删除所有索引

聚合操作
aggregate([ ])
参数:与mongoshell中聚合参数写法一致
返回值:迭代器 同find的返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值