查询数据库上所有表用到图片和视频的数据,并记录到excel表

统计后台系统使用的数据库所有的表和字段用到的图片和视频。所以数据的图片和视频规范下图片和视频的前缀很重要,便于统计。数据的图片和视频地址经常有后缀,所以存储时建议存储去掉后缀的。

const ossProcessParams = [

'?x-oss-process=video/snapshot,t_1000,m_fast',

'?x-oss-process=video/snapshot,t_1000,f_jpg',

'?x-oss-process=video/snapshot,t_2000,f_jpg',

'?x-oss-process=video/snapshot,t_3000,f_jpg'

];

查询数据库上所有表用到图片和视频的数据,并记录到excel表(数据库数据文件表)。

导入头文件:

复制代码
const FspConstant = require('@app/tools/fsp_constant.js');
const Tool = require('@app/tools/common_tool.js');
const msgCode = require('@app/config/error_config.js');
const Excel = require('exceljs');
const fs = require('fs');
const fspTool = require('@app/connections/rent/fsp_tool.js');
const AdModel = fspTool.model('AdModel');
const fspUser = require('@app/connections/rent/fsp_user.js');
const CompanyAccountModel = fspUser.model('CompanyAccountModel');

具体实现代码:

复制代码
//获取数据库的所有图片和视频地址
DeleteRepeatImageVideoTool.getDBImageVideoUrl = async function() {
    let allFiles = [];
    
    let adModelList = await AdModel.find({img: {$nin: [null, '', []]}}, '-_id img').lean().exec();
    adModelList.forEach(item0 =>{
        if(Tool.checkNotEmptArray(item0.img)){
            item0.img.forEach(item =>{
                if(Tool.checkNotEmptString(item)){
                    allFiles.push({db_name: 'AdModel', url: item, field: 'img', field_str: JSON.stringify(item0.img)});
                }
            });
        }
    });
    let companyAccountModelList = await CompanyAccountModel.find({$or: [{business_license_url: {$nin: [null, '']}}, {logo_url: {$nin: [null, '']}}]}, '-_id business_license_url logo_url').lean().exec();
    companyAccountModelList.forEach(item =>{
        if(Tool.checkNotEmptString(item.business_license_url)){
            allFiles.push({db_name: 'CompanyAccountModel', url: item.business_license_url, field: 'business_license_url', field_str: JSON.stringify(item.business_license_url)});
        }
        if(Tool.checkNotEmptString(item.logo_url)){
            allFiles.push({db_name: 'CompanyAccountModel', url: item.logo_url, field: 'logo_url', field_str: JSON.stringify(item.logo_url)});
        }
    });

    
    allFiles = allFiles.filter(item => 
        item.url && item.url.startsWith('https://test.oss-cn-hangzhou.aliyuncs.com')
    );

    if(Tool.checkNotEmptArray(allFiles)){
        let excel = Tool.makeExcel(allFiles, ['db_name', 'url', 'field', 'field_str'], {
            db_name: '数据库名称',
            url: '文件地址',
            field: '字段',
            field_str: '字段详情',
        });
        return {excel, fileCount: allFiles.length};
    }else{
        return {fileCount: 0};
    }
};
相关推荐
AI英德西牛仔4 小时前
从Excel乱象到批量交付:秘塔Excel与“AI导出鸭”PC版的底层重构逻辑
人工智能·重构·excel·deepseek·ai导出鸭
GitLqr5 小时前
2026 Bun 全新姿态:从 Zig 到 Rust 的“暴力”重构与生态大爆发
rust·node.js·bun
上海魁鲸科技有限公司6 小时前
APS高级排产系统到底有什么用?一文讲清功能、选型与落地建议
前端·microsoft·excel
AI导出鸭15 小时前
怎么让文心做表格?AI导出鸭苹果版将文心输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格
人工智能·chatgpt·word·excel·ai导出鸭
admin0051 天前
Excel记账和财务软件记账哪个好?效率与准确率真实对比
excel·excel记账·财务软件记账·小微企业记账
Python私教1 天前
Excel 和群聊什么时候该升级成管理系统?7 个判断信号
excel·管理系统·权限设计
鲲穹AI种草1 天前
表格数据处理怎么选?多款 Excel 工具能力客观记录
excel·表格数据处理
AI英德西牛仔1 天前
Claude导出word指令的PC端最优解:AI导出鸭电脑版底层逻辑全拆解
人工智能·word·excel·deepseek·ai导出鸭
toooooop81 天前
踩坑:PHP7.2导出Excel正常,升级7.3文件损坏需修复
android·excel
AI英德西牛仔1 天前
Gemini 导出 word 指令 时代,PC 端 AI 工作流的最后一块拼图:AI 导出鸭电脑版深度拆解
人工智能·word·excel·deepseek·ai导出鸭