mongodb 查询优化技巧一

mongodb天生不支持多表关联查询,所有复杂的查询都交给了app来处理,这样为了减少在mongodb的查询就要在app上下功夫了

 

images = mongo.image.find({'uid':1,'atime':1,'views':1,'rank':1},skip=0,limit=10)

 

这条语句查询图片的元信息,但是我们还需要创建图片的作者的信息

 

为了减少与mongodb的交互,我们先把查询出来的作者保存下来

 

imagelist = []
        user_dic = {}
        #images是个迭代器,for 迭代完成之后,迭代器指针指空,所以要把元素放在list中保存
        for i in images:
            if str(i['uid']) in user_dic.keys():
                pass
            else:
                user = mongo.user.find_one({'_id':i['uid']})
                if user:
                    user_dic[str(i['uid'])]=user

            imagelist.append(i)

 

如上,每次查询图片作者的时候,先在dic里面查找,如果没有找到再去数据库中查询,这样将尽量减少了与数据库的交互

提高了查询效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值