登录
首页 >  Golang >  Go问答

优化大型集合查询的方法在 mongo db 中如何实施?

来源:stackoverflow

时间:2024-02-14 16:12:24 311浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《优化大型集合查询的方法在 mongo db 中如何实施?》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在处理 Mongo DB User 和 UserHistory 中的两个集合。其中 User 集合包含特定用户的静态信息,并且在 UserHistroy 表中可以有特定用户的多个记录,与其历史记录相关。我在每个集合中都有一个用户的用户 ID 和一组其他字段相关值。我只是想检查是否有任何记录满足这些条件。

用户

-用户ID

-名称

-类型

-类

用户历史记录

-用户ID

-用法

-余额

-计费值

我有来自 User 集合的 "userId" = 'XXX'、"type" = 'YYY'、"class" = 'ZZZ' 和与 UserHistroy 集合相关的 "balance" = 60 值。 我想知道是否有满足上述所有条件的相关用户。 (最佳方式)=> 查找可能有点耗时,因为集合包含大量数据。

我正在使用 Golang 来实现这个逻辑。


解决方案


您可以在 $lookup 子查询中添加 $limit 以避免从 UserHistory 查找所有文档。然后,您可以检查查找数组是否为空,以进行进一步的逻辑。

这里有一个 Mongo Playground 供您参考。

您还可以看到,作为常见的性能调优实践,$match 阶段被放置在早期阶段,以使查询尽可能具有选择性。

以上就是《优化大型集合查询的方法在 mongo db 中如何实施?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>