MongoDB 쿼리 연산자

이상우·2021년 10월 7일
0

SQL에서 쿼리모습은 예를들면 SELECT * FROM table WHERE column="value"이고, MongoDB에서의 쿼리모습은 collection.find({"field": "value}, {}) 이 두문장은 같은 의미를 뜻한다.

MongoDB 쿼리

{ <field>: {<operator1>: <value>, <operator1>: <value>}, <field>:....}
기본적으로 쿼리는 필드가장 바깥에 있고, 안쪽연산자(operator)가 들어간다.
실제 예시)
{"height": {"$gte": 175, "$lte": 180}, "width": {"$gte": 60}
->height가 175이상 180이하이고, weight가 60이상인 사람

하지만 예외적으로 $or, $and, $nor세개의 연산자는 가장 바깥에 쓰인다.
실제 예시)
{"$or": [{"status": "A"}, "qty": {"$lt": 30}}]}
이러한 정해진 형식을 지키지 않으면, 쿼리는 사용될 수 없다.

비교 연산자


실제 예시)
{"height": {"$gte": 175, "$lte": 180}, "width": {"$gte": 60}
->height가 175이상 180이하이고, weight가 60이상인 사람

논리 연산자


예외적으로 논리 연산자$or, $and, $nor세개는 가장 바깥에 쓰인다.
실제 예시)
{"$or": [{"status": "A"}, "qty": {"$lt": 30}}]}

문자열 연산자


실제 예시)
articles.find({"title": {"$regex": "article[1-2"}})
->title의 article(1~2) document를 찾는다.

배열 연산자


실제 예시)
items.find({"tags": {"$all": ["book", "appliance"]}})
->tags배열속 book과 appliance값을 포함한 모든 document를 찾는다.

요약

연산자 모두를 외울 필요가 없고, 필요에 따라서 찾아 쓰면 된다.

profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글