03-MongoDB 关联查询:N+1 慢查询、两次查询法与 $lookup
MongoDB关联查询有嵌入、两次查询法与$lookup三条路。N+1是循环逐条查,往返随数据量增长并可能占满连接池;两次查询法应一次IN批量取、id去重分批、先分页主表再关联、空列表短路并用Map拼装。关联数据只展示时两次查询法足够,若参与过滤、排序、分页或关联表更大,需用$lookup下推数据库。使用$lookup要给关联字段建索引,注意$unwind默认INNER JOIN语义,以及相关子查询和$expr索引限制。选型优先级为嵌入、两次查询法、$lookup,并可用profiler发现N+1。
2026-10-21
|
2
|
0
|
0
