导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
最新评论
广树管理员
2025-05-07 21:00
@ZeroCounter:哈哈哈,被发现啦
ZeroCounter
2025-05-07 14:06
原来博主是可爱的二次元女孩子(→游船上那张全景
广树管理员
2025-05-06 14:31
@ZeroCounter:这样啊,逐渐听不懂现在的网络热梗了😅
ZeroCounter
2025-05-06 13:41
@广树:一个梗啦,表示很无语( 因为国内的阅读理解题经常写表达了作者的思乡之情(
广树管理员
2025-05-06 11:13
@ModerRAS:云台拍摄全景需要固定不动,时间也长,有一定场景限制。
攻略中
星空列车与白的旅行
暂无评分
Steam星空列车与白的旅行
2025年2月22日 22时 ~ 攻略中
已累计游玩2个月15天
乘坐的列车,划破夜空,飞驰在星空之下,令人心旷神怡——这可真是场超值之旅。舒爽夜风吹拂下的随心独旅中,我邂逅了随性的乘客,可人怜爱的乘务员。以及……猫耳少女?这场旅行,究竟会在她身上,留下了些什么呢?
PSN奖杯卡

PSN奖杯卡

归档
赞助商广告

用Mongoose限制存入MongoDB的文档数(capped)

作者:广树时间:2019-03-25 09:31:03分类:Node.js

在上篇《试着用Node.js重写了抽卡系统》中出现的查看最新动态里,原先在Emlog版里我是用json文件储存并且限制了条数,但是在Node.js版里我将动态数据储存到了MongoDB数据库当中了,于是就出现一个问题。

因为是日志类数据,以后必定会有大量不必要的数据产生,这里就需要对数据量做一个限制,超过限制就要覆盖掉最旧的数据。

这里就要用到capped。

然后查阅官方文档会发现:

new Schema({..}, { capped: 1024 });

new Schema({..}, { capped: { size: 1024, max: 1000, autoIndexId: true } });

两种写法。

这里size为必填,为一个文档的总大小,单位为字节,文档超过这个大小后就会开始覆盖旧数据。

max为文档数量,选填,如果文档超过设定值就会覆盖旧数据,但是如果在超过数量之前先超过了文档的设定大小则也会覆盖旧数据。

autoIndexId为自动创建索引也就是_id,这个设置在我5.4.19版本的Mongoose里会被提示即将废弃。所以如果是用新版的Mongoose的话,这个选项推荐不填。




donate.png

1210 x 50(蓝底).png

cloudcone