$lookup
Menyusun alur simple join dan LookupSpec berbasis let/pipeline, tahap mentah native Driver, unwind dan hitung lookup.
localField / foreignField
let + pipeline + $expr
• bindConditionFields(leftField, condition, rightField)
• bindConditionFieldsLeftToObjectId(...)
• bindConditionExists, bindConditionIsNull, bindConditionIsNotNull
• bindConditionConst, bindConditionBetween, bindConditionLike
• rawStage(Bson) untuk tahap pipeline lookup native Driver
• unwind(preserveNullAndEmptyArrays)
• outerStage(Bson) / outerStages(...) untuk tahap setelah $lookup
Menjalankan Lookup
unwind(...)를 사용하지 않은 기본 findAll lookup은 right 결과를 List<R>로 반환합니다. 단건 left/right가 필요하면 find().executeLookup(...) 경로를 사용합니다.
Lookup + hitung / ada
executeLookupAndCount(...) mengembalikan data dan totalCount dalam bentuk $facet(data, count). builder count/exists juga dapat menerima hasil lookup sebagai tuple kiri/kanan.