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里面查找,如果没有找到再去数据库中查询,这样将尽量减少了与数据库的交互

提高了查询效率

发布了24 篇原创文章 · 获赞 4 · 访问量 6036
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览