본문으로 건너뛰기

함수: minusWherePredicates()

function minusWherePredicates(fromPredicate, subtractPredicate): 
| BasicExpression<boolean>
| null;

정의 위치: packages/db/src/query/predicate-utils.ts:371

두 where 조건자 간의 차이를 계산합니다: fromPredicate AND NOT(subtractPredicate). 단순화된 조건자를 반환하며, 차이를 단순화할 수 없으면 null을 반환합니다 (이 경우 호출자는 전체 fromPredicate를 가져와야 합니다).

매개변수

fromPredicate

빼는 대상 조건자입니다

BasicExpression&lt;boolean> | undefined

subtractPredicate

뺄 조건자

BasicExpression&lt;boolean> | undefined

반환값

| BasicExpression&lt;boolean> | null

단순화된 차이 또는 단순화할 수 없는 경우 null

예제

// Range difference
minusWherePredicates(
gt(ref('age'), val(10)), // age > 10
gt(ref('age'), val(20)) // age > 20
) // → age > 10 AND age <= 20
// Set difference
minusWherePredicates(
inOp(ref('status'), ['A', 'B', 'C', 'D']), // status IN ['A','B','C','D']
inOp(ref('status'), ['B', 'C']) // status IN ['B','C']
) // → status IN ['A', 'D']
// Common conditions
minusWherePredicates(
and(gt(ref('age'), val(10)), eq(ref('status'), val('active'))), // age > 10 AND status = 'active'
and(gt(ref('age'), val(20)), eq(ref('status'), val('active'))) // age > 20 AND status = 'active'
) // → age > 10 AND age <= 20 AND status = 'active'
// Complete overlap - empty result
minusWherePredicates(
gt(ref('age'), val(20)), // age > 20
gt(ref('age'), val(10)) // age > 10
) // → {type: 'val', value: false} (empty set)