Back-End/Firebase

[React/Cloud Firestore] 복합 쿼리문(OR, AND) 코드

koh1018 2022. 1. 19. 02:00
반응형

 

AND 구현

import { query, where } from "firebase/firestore";

const q1 = query(citiesRef, where("state", "==", "CO"), where("name", "==", "Denver"));
const q2 = query(citiesRef, where("state", "==", "CA"), where("population", "<", 1000000));

위와 같이 where()뒤에 (,)콤마 찍고 where() 또 쓰면 AND를 구현할 수 있다.

 


 

OR 구현

import { query, where } from "firebase/firestore";

const q = query(citiesRef, where('country', 'in', ['USA', 'Japan']));

위와 같이 뒤쪽에 배열을 놓고 'in'을 사용하면 OR을 구현할 수 있다.

위의 예시 쿼리는 country 필드가 USA 또는 Japan으로 설정된 모든 city 문서를 반환한다.

 

아니면 q1 쿼리문으로 데이터를 받아오고, q2 쿼리문으로 데이터를 받아온 뒤 map함수를 이용해 배열 형태로 바꾼다음 concat()함수로 합쳐주는 것도 물리적으로 OR을 만드는 방법이다.

반응형