Mongodb: 쿼리에서 and($and) 연산자를 사용하는 방법
MongoDB에서 $and 연산자를 사용하여 여러 기준과 일치하는 문서를 검색할 수 있습니다.
이 연산자는 다음 기본 구문을 사용합니다.
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
이 특정 예는 field1이 “hello” 이고 field2 의 값이 10보다 크거나 같은 myCollection 이라는 컬렉션에서 모든 문서를 검색합니다.
다음 예는 다음 문서를 통해 컬렉션 팀 에서 실제로 이 구문을 사용하는 방법을 보여줍니다 .
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
예 1: 두 개의 필드에 AND 연산자 사용
다음 코드 는 “team” 필드가 “Spurs”이고 “points” 필드 값이 22보다 크거나 같은 팀 컬렉션의 모든 문서를 찾는 방법을 보여줍니다.
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
이 쿼리는 다음 문서를 반환합니다.
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
출력의 각 문서에는 팀 필드에 “Spurs”가 포함되어 있고 포인트 필드에 22보다 크거나 같은 값이 포함되어 있습니다.
예 2: 3개 이상의 필드에 AND 연산자 사용
다음 코드는 “team” 필드가 “Mavs”와 같지 않고 “points” 필드의 값이 22보다 크거나 같고 “rebounds” 필드의 값이 있는 팀 컬렉션의 모든 문서를 찾는 방법을 보여줍니다. » 필드가 7보다 작습니다.
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
이 쿼리는 다음 문서를 반환합니다.
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
이 문서는 컬렉션에서 세 가지 기준을 모두 충족하는 유일한 문서입니다.
- “팀” 필드가 ” Mavs “와 같지 않습니다.
- “포인트” 필드의 값은 22 이상입니다.
- “리바운드” 필드의 값이 7 보다 작습니다.
참고 : $and 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법
MongoDB: “NO IN” 쿼리를 사용하는 방법
MongoDB: 특정 필드에서 “not null”을 검색하는 방법