mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍,刚好我们的生产业务场景中就有一个案例。。。

一:案例分析

生产的推荐系统要给用户发送短信和邮件的关联营销。第一波:当用户在淘宝下单之后发送一次短信和邮件千人千面,第二波:为了增加回购率,10天之后将会再次触发短信和邮件方式的千人千面,场景就这样的,流程图如下。

技术上来说:第一波营销中已经下单成功的客户需要给保存起来,因为10天后需要对这一批用户再发送一次,如果不让数据无限膨胀,我需要不断清理 >10 天的数据,写个脚本虽然简单但没这个必要,可以用 mongodb 中的 ttlindex 索引来搞定这件事,设定 10天 之后自动过期。

二:ttlIndex

现在我想大家对 ttlIndex 有了大概的认识,查一下官方文档:https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex,  看看这种 ttlIndex 怎么创建?


db.collection.createIndex(keys, options)

从 options 中的 expireAfterSeconds 参数来看,这个 value 是一个 int 型的 second,而且这个 ttlIndex 是需要建立在docment的field上面的,接下来创建一个简单的planeollection,并且date的过期时间是2s,主要是用来测试一下嘛。。。

过 60s 之后再查看一下数据,数据已经没有啦~~~

可能有些人就有疑问了,为什么这里要说最多 60s 之后再查看数据,当然是有原因的,因为 mongod 底层机制会开一个 background task,60s轮转一次,不信的话,你可以看下官网的描述哦!

好了,本篇就说这么多,希望对你有帮助。

不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!相关推荐

  1. mongodb存储数据_在MongoDB中存储分层数据

    mongodb存储数据 继续使用MongoDB进行 NoSQL之旅,我想谈一谈一个经常出现的特定用例:存储分层文档关系. MongoDB是很棒的文档数据存储,但是如果文档具有父子关系,该怎么办? 我们 ...

  2. 在MongoDB中存储分层数据

    继续使用MongoDB进行 NoSQL之旅,我想触摸一个经常出现的特定用例:存储分层文档关系. MongoDB是很棒的文档数据存储,但是如果文档具有父子关系怎么办? 我们可以有效地存储和查询此类文档层 ...

  3. 【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。

    我想写一本书,书名是<中国文学史>,帮我列一下目录,细化到三级目录,不少于2000字. 中国文学史 第一章 经典文学 1.1 先秦文学     1.1.1 先秦诗歌         1.1 ...

  4. python中接口测试垃圾数据如何清理_Python接口测试题(持续更新中)

    1.json和字典的区别? Json是轻量级的数据交互格式,以key-value的键值对形式来保存数据,结构清晰,可以说是目前互联网项目开发中最常用的一种数据交互格式. 字典,同样是以key-valu ...

  5. spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...

    1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...

  6. python中接口测试垃圾数据如何清理_一个六年经验的python后端是怎么学习用java写API的(2)Extracter,微信文章抓取清洗入库...

    描述 pirate 是由我的 django 脚手架 original 实现的,文件上传提供了七牛和腾讯云两个 backend,部署提供了默认的配置文件,因此只要关注具体的微信的抓取逻辑即可. 核心表讲 ...

  7. python中接口测试垃圾数据如何清理_接口测试---Python数据处理需要注意的细节

    一.json模块中的dumps方法 请求接口时params肯定是dict类型的,就是这种{"A":"B"},因为需要传json格式的参数到服务端,但是为了降低c ...

  8. python中接口测试垃圾数据如何清理_巧用PyUnit中unittest特性解决接口测试产生脏数据问题...

    巧用PyUnit中unittest特性解决接口测试产生脏数据问题 一.背景 测试数据创建后需要对其删除,不然可能产生脏数据,对开发和测试.生产环境造成一定影响.其接口框架是基于Python,API规范 ...

  9. 安卓一键清理内存_垃圾一键清理大师软件下载-垃圾一键清理大师下载v3.2.2 安卓版...

    垃圾一键清理大师软件内置了手机加速.程序管理等功能,既可以时刻清理手机中的垃圾数据,也可以一键整理桌面,让手机每天都运行流畅!这款应用不管在任何安卓智能手机上都可以使用,界面清爽,使用过程中没有广告骚 ...

最新文章

  1. 20个非常有用的Java程序片段
  2. LR(0)语法制导翻译
  3. NSMutableArray 如果只进行了声明,而没有进行初始化,那么程序不会报错,但是,声明的那个变量不起任何作用...
  4. autofac 作用域_控制作用域和生命周期
  5. vue打包路径.html问题,如何解决vue.js打包报错问题
  6. 外卖菜谱小程序源码-带流量主功能-外卖领劵个人也可过审
  7. JavaScript:Functions
  8. BP神经网络的数学原理及其算法实现
  9. 「转发领抱枕」40万奖金等你来挑战!阿里云ECS Cloudbuild开发者大赛重磅开启
  10. js-JavaScript常见的创建对象的几种方式
  11. Vissim4.3之API/SDK编程;Vissim编程;
  12. 中国医科大学2021年12月《医学遗传学》作业考核试题
  13. matlab中求特征值的eig函数说明
  14. 360打开html加载不出来,360浏览器显示正在解析主机打不开网页如何处理
  15. 设计一个立方体类(长方体)Box,它能计算并输出立方体的体积和表面积。
  16. 一阶电路实验报告心得_一阶rc电路实验总结
  17. 沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第七章 GTP的IP核配置
  18. 论程序员成长中不可避免的选择,薪资与积累
  19. 网电空间战 3-战斗空间
  20. T检验中有哪些指标?

热门文章

  1. UI自动化web端框架path.py代码
  2. 关于Webapp的注意事项
  3. C# Socket编程笔记(转)
  4. 如何将iPhone或iPad更新到iOS 11
  5. powershell实现设置程序相关性脚本
  6. Android之Window与WindowManager
  7. Install OpenCV-Python in Ubuntu
  8. Question | 网站被黑客扫描撞库该怎么应对防范?
  9. MySQL远程访问报错解决
  10. 云服务远程登录---设置安全组