提高MongoDB效率十大优化方式

MongoDB九大优化方式:
第一:单次批量查询比循环逐条查询更快;
循环查询是开发者最常犯的错误写法。循环嵌套查询写代码快,逻辑简单,最耗时。在小批量数据处理时间一般远小于数据库查询时间。所以尽量避免增加查询次数,能把多次查询合并成单次批量查询尽量查询。解决办法:先预处理把查询字段合并成一个数组,然后数组中的同类项,接着用批量查询(包括管道操作),转成map,最后用map的get方法查找数据。

let list = await VRRecord.find({
   
            type: '航拍',
            status: {
   
                $in: ['', null, 'FINISH']
            }
        }, '-_id -estate_id -views_num').sort({
   
            create_time: -1
        }).lean().exec();
        // let time1 =  new Date().getTime();
        // logger.debug('time1-time0:', time1-time0, 'list.length:', list.length);
        // 使用map和concat来遍历list,并提取每个元素的estates数组
        let newList = [].concat(...list.map(item => {
   
            // 确保estates是一个数组
            return Array.isArray(item.estates) ? item.estates : [];
        }));
        // 使用Set来去除重复的
        newList = Array.from(new Set(newList));
        // logger.debug('newList:', newList);
        let subUserMap = new Map();
        if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值