【解决】MongoDB 线上业务处理,数据去重脚本实现
#!/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
【解决】MongoDB 线上业务处理,数据去重脚本实现的更多相关文章
- Node+mongodb线上部署到阿里云
Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...
- O2O 线下业务 和 线上业务,在特征工程上的差异
人工智能在外卖送达时预估上的应用 这篇讲清楚了 O2O 线下业务 和 线上业务,在特征工程上的差异:
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
- 【Maven篇】---解决Maven线上部署java.lang.ClassNotFoundException和no main manifest attribute解决方法
一.前述 maven 线上部署的话会出现一些问题比如java.lang.ClassNotFoundException或者no main manifest attribute的话,是因为maven 配置 ...
- git冲突解决、线上分支合并、luffy项目后台登陆注册页面分析引入
今日内容概要 git冲突解决 线上分支合并 登陆注册页面(引入) 手机号是否存在接口 腾讯云短信申请 内容详细 1.git冲突解决 1.1 多人在同一分支开发,出现冲突 # 先将前端项目也做上传到 g ...
- redis扫描特定keys脚本,可避免阻塞,不影响线上业务
#!/bin/sh ## 该脚本用来查询redis集群中,各个实例当中特定前缀的key,对应只需要修改redis的其中一个实例的 host和port## 脚本会自动识别出该集群的所有实例,并查出对应实 ...
- 转:一篇讲线上优化查 CPU的脚本
原文链接:https://my.oschina.net/leejun2005/blog/1524687 摘要: 本文主要针对 Java 服务而言 0.背景 经常做后端服务开发的同学,或多或少都遇到 ...
- MongoDB 线上环境按照及配置(授权方式启动)
1创建文件repo文件 #vim /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository bas ...
- vue3 迫不得已我硬着头皮查看了keepalive的源代码,解决了线上的问题
1.通过本文可以了解到vue3 keepalive功能 2.通过本文可以了解到vue3 keepalive使用场景 3.通过本文可以学习到vue3 keepalive真实的使用过程 4.通过本文可以学 ...
随机推荐
- HTML 提高页面加载速度的方法
(1)减少 HTTP 的请求.(合并资源文件 和 使用图片精灵 : (2)把CSS 放头部,把 JavaScript 放到 body 标签尾部: (3)定义图片的宽和高: (4)定义字符集: (5) ...
- Exchange 域用户无权管理邮箱
将需要管理邮箱的域用户添加至“Microsoft Exchange Security Groups”用户组即可.
- Spring MVC 如何加载静态html
在spring mvc的xml文件最后面加上下面这一行<mvc:deault-servlet-handler/>
- To find names containing exactly five characters, use “^”and “$”to match the beginning and end of the name, and five instances of “.”in between: mysql
To find names containing exactly five characters, use “^”and “$”to match the beginning and end of th ...
- js:正则表达式
<script type="text/javascript"> function SubmitCk() { var reg = /^([a-zA-Z0-9]+[_|\_ ...
- 使用CTE公用表表达式的递归查询(WITH AS)
公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE.递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式. 当某个查询引用递归 ...
- Servlet 2.5为cookie配置HTTPOnly属性
cookie的HTTPOnly属性,主要是用来防止JavaScript来读取cookie,默认情况下,JavaScript可以通过document.cookie来读取cookie,这样是很不安全的.通 ...
- 2.安装 Android SDK
安装Android SDK Android SDK(Software Development Kit,软件开发工具包)提供了 Android API 库和开发工具构建,测试和调试应用程序.简单来讲,A ...
- 【面试虐菜】—— 常用SQL语句
创建表 create table emp( id decimal, name ), age decimal) 删除表 DROP TABLE EMP 插入默认值 CREATE TABLE EMP( Id ...
- SQL server 2008 安装报错 reporting services catalog database file existence
SQL server 2008 安装时报错 提示 reporting services catalog database file existence 查了一下,是因为原来装过Sql server 2 ...