mongo客户端工具下载  https://robomongo.org/download
 
线上业务,k线 展示出现问题,相同时间戳的数据多次插入导致数据不真实,后经排查发现是每次都是写的四条数据,找开发配合一起查找问题,发现是后台逻辑处理的问题
 
需求:将重复的数据去掉,只保留一份数据
 
客户端数据查询:
 
 
 
  由于表太多 一张一张去删 很麻烦 于是写了个脚本偷懒
 
 #!/bin/bash
# liyongjian5179@.com
#将所有的表名导出来
mongo 192.168.112.128:/admin -uadmin -plyj &> .txt <<EOF
use user_center;
show collections
exit;
EOF sed -i '1,4d' .txt
#tail -n .txt > .txt
for TABLE in `cat .txt` ;do
echo ${TABLE}
#查重
mongo 192.168.112.128:/admin -uadmin -plyj <<EOF
use user_center
db.${TABLE}.aggregate([{\$group:{_id:{createTime:'\$createTime'},count:{\$sum:}}},{\$match:{count:{\$gt:}}}])
exit
EOF
STATUS=`echo $?`
echo $STATUS
if [ $STATUS = ];then
#去重
mongo 192.168.112.128:/admin -uadmin -plyj <<EOF
use user_center;
db["${TABLE}"].aggregate([{\$group: { _id: {createTime: '\$createTime'},count: {\$sum: },dups: {\$addToSet: '\$_id'}}},{\$match: {count: {\$gt: }}}]).forEach(function(doc){doc.dups.shift(); db["${TABLE}"].remove({_id: {\$in: doc.dups}}); });
exit
EOF
TATUS=`echo $?`
echo $STATUS
if [ $STATUS = ];then echo "去重 success" ; else echo "fail" ;fi else
echo "wrong"
exit fi
done
库如下:
> show dbs
admin        0.000GB
local        0.000GB
test         0.002GB
user_center  0.111GB
 
表如下:
btc_cnyt_12hour_kline
btc_cnyt_15min_kline
btc_cnyt_1hour_kline
btc_cnyt_1min_kline
btc_cnyt_2hour_kline
btc_cnyt_30min_kline
btc_cnyt_3day_kline
btc_cnyt_3min_kline
btc_cnyt_4hour_kline
btc_cnyt_5min_kline
btc_cnyt_6hour_kline
btc_cnyt_day_kline
btc_cnyt_week_kline
cnytplus_cnyt_12hour_kline
cnytplus_cnyt_15min_kline
cnytplus_cnyt_1hour_kline
cnytplus_cnyt_1min_kline
cnytplus_cnyt_2hour_kline
cnytplus_cnyt_30min_kline
cnytplus_cnyt_3day_kline
cnytplus_cnyt_3min_kline
cnytplus_cnyt_4hour_kline
cnytplus_cnyt_5min_kline
cnytplus_cnyt_6hour_kline
cnytplus_cnyt_day_kline
cnytplus_cnyt_week_kline
cnytplus_eth_12hour_kline
cnytplus_eth_15min_kline
cnytplus_eth_1hour_kline
cnytplus_eth_1min_kline
cnytplus_eth_2hour_kline
cnytplus_eth_30min_kline
cnytplus_eth_3day_kline
cnytplus_eth_3min_kline
cnytplus_eth_4hour_kline
cnytplus_eth_5min_kline
cnytplus_eth_6hour_kline
cnytplus_eth_day_kline
cnytplus_eth_week_kline
eos_cnyt_12hour_kline
eos_cnyt_15min_kline
eos_cnyt_1hour_kline
eos_cnyt_1min_kline
eos_cnyt_2hour_kline
eos_cnyt_30min_kline
eos_cnyt_3day_kline
eos_cnyt_3min_kline
eos_cnyt_4hour_kline
eos_cnyt_5min_kline
eos_cnyt_6hour_kline
eos_cnyt_day_kline
eos_cnyt_week_kline
eth_cnyt_12hour_kline
eth_cnyt_15min_kline
eth_cnyt_1hour_kline
eth_cnyt_1min_kline
eth_cnyt_2hour_kline
eth_cnyt_30min_kline
eth_cnyt_3day_kline
eth_cnyt_3min_kline
eth_cnyt_4hour_kline
eth_cnyt_5min_kline
eth_cnyt_6hour_kline
eth_cnyt_day_kline
eth_cnyt_week_kline
ltc_cnyt_12hour_kline
ltc_cnyt_15min_kline
ltc_cnyt_1hour_kline
ltc_cnyt_1min_kline
ltc_cnyt_2hour_kline
ltc_cnyt_30min_kline
ltc_cnyt_3day_kline
ltc_cnyt_3min_kline
ltc_cnyt_4hour_kline
ltc_cnyt_5min_kline
ltc_cnyt_6hour_kline
ltc_cnyt_day_kline
ltc_cnyt_week_kline
usdt_cnyt_12hour_kline
usdt_cnyt_15min_kline
usdt_cnyt_1hour_kline
usdt_cnyt_1min_kline
usdt_cnyt_2hour_kline
usdt_cnyt_30min_kline
usdt_cnyt_3day_kline
usdt_cnyt_3min_kline
usdt_cnyt_4hour_kline
usdt_cnyt_5min_kline
usdt_cnyt_6hour_kline
usdt_cnyt_day_kline
usdt_cnyt_week_kline
 
 
 
 

【解决】MongoDB 线上业务处理,数据去重脚本实现的更多相关文章

  1. Node+mongodb线上部署到阿里云

    Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...

  2. O2O 线下业务 和 线上业务,在特征工程上的差异

    人工智能在外卖送达时预估上的应用 这篇讲清楚了 O2O 线下业务 和 线上业务,在特征工程上的差异:

  3. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

  4. 【Maven篇】---解决Maven线上部署java.lang.ClassNotFoundException和no main manifest attribute解决方法

    一.前述 maven 线上部署的话会出现一些问题比如java.lang.ClassNotFoundException或者no main manifest attribute的话,是因为maven 配置 ...

  5. git冲突解决、线上分支合并、luffy项目后台登陆注册页面分析引入

    今日内容概要 git冲突解决 线上分支合并 登陆注册页面(引入) 手机号是否存在接口 腾讯云短信申请 内容详细 1.git冲突解决 1.1 多人在同一分支开发,出现冲突 # 先将前端项目也做上传到 g ...

  6. redis扫描特定keys脚本,可避免阻塞,不影响线上业务

    #!/bin/sh ## 该脚本用来查询redis集群中,各个实例当中特定前缀的key,对应只需要修改redis的其中一个实例的 host和port## 脚本会自动识别出该集群的所有实例,并查出对应实 ...

  7. 转:一篇讲线上优化查 CPU的脚本

    原文链接:https://my.oschina.net/leejun2005/blog/1524687   摘要: 本文主要针对 Java 服务而言 0.背景 经常做后端服务开发的同学,或多或少都遇到 ...

  8. MongoDB 线上环境按照及配置(授权方式启动)

    1创建文件repo文件 #vim /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository bas ...

  9. vue3 迫不得已我硬着头皮查看了keepalive的源代码,解决了线上的问题

    1.通过本文可以了解到vue3 keepalive功能 2.通过本文可以了解到vue3 keepalive使用场景 3.通过本文可以学习到vue3 keepalive真实的使用过程 4.通过本文可以学 ...

随机推荐

  1. 弹出框layer插件

    有时候我们在网页制作中需要引用各种弹出框,弹出框的展现形式多种多样.可以是弹出图片,视频,文字,也可以是弹出图片轮播等形式: 弹出框插件——layer使用方法(其实官方文档中已经介绍的很详细): 下载 ...

  2. html中通过移除空格的方法来解决浏览器上的留白间距该怎么理解?

    今天在切图的时候,碰到一个兼容性的问题,很幸运最后通过张金鑫老师的文章解决了这个问题!但在阅读张老师文章的时候,我有个地方不明白,在网上查了下也没找到我想要的答案,后来自己想了半天好像是这么回事,现在 ...

  3. 【阿里云产品公测】简单粗暴30S完成PTS测试配置附tornado服务器测试结果

    作者:阿里云用户morenocjm [阿里云产品公测]简单粗暴 30S完成PTS测试配置(附tornado服务器测试结果) -------------------------------------- ...

  4. 【阿里云产品公测】PTS压力测试服务器性能

    作者:阿里云用户xsnjxjj 在PTS服务之前,经常使用webbench来对服务器进行压力测试,在看到阿里云PTS服务的介绍以后,深深的被PTS强大的功能所吸引     非常感谢阿里云团队给予的测试 ...

  5. Microsoft BI - SSRS

    1. Shared Dataset 功能在 SQL Server 2008 R2 / 2012 / 2014 的下列三个版本中不支持,详情请参考此处: Express Edition with Adv ...

  6. [工作积累点滴整理]虚拟化、云计算配置规划<一>

    目 录1. 服务器虚拟化的相关配置建议 11.1. 服务器的基本配置建议 11.1.1. CPU配置 11.1.2. 服务器内存配置 21.1.3. 物理网卡配置 21.1.4. 服务器磁盘配置 21 ...

  7. March 29 2017 Week 13 Wednesday

    It's during our darkest moments that we must focus to see the light. 在最黑暗的时刻,最该努力看到光. I always thoug ...

  8. [EffectiveC++]item30:Understand the ins and outs of inlining

  9. Perl 基础笔记: 使用 cpanm 安装 Perl 模块

    cpanm 其实只是一个可执行文件而已.将它下载到 bin 目录,然后添加执行权限就可以用了. $ sudo wget http://xrl.us/cpanm -O /usr/bin/cpanm; s ...

  10. ACM-ICPC(11/9)

    今天看了一下黑书,感觉很刘汝佳,是他的风格,题目挺好的~~~ 枚举 P12翻硬币 二进制枚举每一列的情况2^9种. 在每一种情况下然后对于每一行就是翻与不翻的两种情况~~~ 贪心 P13钓鱼问题 PO ...