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”을 검색하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다