본문으로 건너뛰기

Query

1 Query

2 find

  • 몽고디비에서 find 함수는 쿼리에 사용한다.
  • 쿼리는 컬렉션에서 도큐먼트의 서브셋을 반환한다.
    • 빈 컬렉션부터 컬렉션 전체까지 반환한다.

2.1 쿼리 도큐먼트

  • find 함수를 사용하여 컬렉션에서 도큐먼트를 검색할 때, 첫 번째 매개변수로 쿼리 도큐먼트를 전달합니다.
    • 쿼리 도큐먼트는 검색 조건을 명시하는 JSON 객체입니다.
    • 예시: db.collection.find({ key: value })
    • 여기서 key는 컬렉션의 필드 이름이고, value는 해당 필드에서 찾고자 하는 값입니다.
  • 쿼리 도큐먼트를 비워두면 ({}), find 함수는 컬렉션의 모든 도큐먼트를 반환합니다.
    • 매개변수에 쿼리 도큐먼트가 없으면 find 함수는 {}로 인식해 컬렉션 내 모든 도큐먼트를 반환합니다.
    • 예시: db.collection.find({}) 또는 db.collection.find()
  • 쿼리 도큐먼트에 특정 필드와 값을 지정하여 해당 조건과 일치하는 모든 도큐먼트를 조회할 수 있습니다.
    • 예시: db.collection.find({ age: 30 })
    • age 필드의 값이 30인 모든 도큐먼트를 반환합니다.
  • 조건 연산자를 사용하여 보다 복잡한 쿼리를 수행할 수 있습니다.
    • 시: db.collection.find({ age: { $gt: 25 } })
    • age 필드의 값이 25보다 큰 모든 도큐먼트를 반환합니다.

2.2 반환받을 키 지정

  • 조회된 도큐먼트에서 특정 필드만 선택하거나 제외할 수 있습니다.
  • 이는 find 함수의 두 번째 매개변수로 지정됩니다.
  • 예시: db.collection.find({}, { name: 1, age: 1 })
    • 모든 도큐먼트를 반환하지만, nameage 필드만 포함합니다.
    • _id 키는 지정하지 않아도 항상 반환된다.
  • 예시: db.collection.find({}, { name: 0 })
    • 모든 도큐먼트를 반환하지만 name 필드만 제외된다.

3 쿼리 조건

3.1 쿼리 조건절

3.2 배열에 쿼리하기

  • 배열이 포함된 MongoDB 컬렉션의 문서를 쿼리할 때 쿼리에서 직접 찾고 있는 배열 요소를 지정할 수 있습니다.
  • MongoDB는 배열을 쿼리하는 여러 가지 방법을 제공하므로 배열에 하나 이상의 특정 요소가 있는지 또는 더 복잡한 기준을 기반으로 문서를 일치시킬 수 있습니다.

기본 배열 쿼리

db.collection.find({ "arrayField": "elementValue" })>)
  • 단순히 배열에 특정 요소가 포함된 문서를 찾으려면 위와 같이 쿼리에서 직접 요소를 지정할 수 있습니다.
db.food.find({ "fruit": "banana" })
  • 예를 들어 food라는 컬렉션이 있고 fruit 배열에 "banana"가 포함된 모든 문서를 찾으려면 위와 같이 할 수 있습니다.