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()
- 매개변수에 쿼리 도큐먼트가 없으면 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 })
- 모든 도큐먼트를 반환하지만,
name
과age
필드만 포함합니다. _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"가 포함된 모든 문서를 찾으려면 위와 같이 할 수 있습니다.