如何高效的查询mongodb中的数据
发布于 5 天前 作者 WUSO01 736 次浏览 来自 问答

场景:前端给后端发送了一个数组,数组的大小不限制,有可能非常小,有可能非常大。数组的每个项是一个id。后端收到这个数组后,需要从mongodb数据库中获取每个id的详情信息并返回给前端。 请问怎么样从mongodb去查询数据好一些呢?遍历那个数组,在遍历的过程中去数据库吗。这样应该不是很好的解决办法吧?

5 回复

根据前端传的一维数组拆成二维数组并发查询,然后拼接结果。

例如:前端传[‘id1’, ‘id2’, ‘id3’, ‘id4’, ‘id5’], 拆成 [[‘id1’, ‘id2’], [‘id3’, ‘id4’], [‘id5’]]

然后分3个查询,并发进行,使用$in,最后合并结果返回给前端。

@blackmatch 这样会容易让连接数爆满吧,存在风险

@TimLiu1 是的,这是一个拆的思路,代价是连接变多,查询次数变多。如果说$in 匹配的数量没有限制又不存在性能问题,直接就一次查询就好了。

@blackmatch 确实可以作为考虑之一,那其实我想问 @WUSO01 你遇到的问题是什么,我感觉你是不会用$in查询,否则任何情况都不该循环的

直接 in 被,都是 id 时间复杂度很低的。 id 是有索引

回到顶部