이전에 우리는 MongoDB에 데이터를 삽입하는 기본적인 방법을 배웠습니다. 이번에는 CRUD 중에서도 C(Create) 이후에 이어지는 R(Read)에 해당하는 데이터베이스에서 데이터를 쿼리하거나 읽는 방법에 대해 알아보겠습니다.
데이터베이스에서 정보를 찾는 것은 매우 중요한 작업 중 하나이며, 많은 웹 애플리케이션에서 CRUD를 모두 사용하고 있습니다.
예를 들어, Reddit의 특정 subreddit에서 게시물을 찾거나, 특정 사용자가 올린 게시물을 검색하거나, 댓글을 조회하는 등의 작업이 데이터베이스에서의 쿼리 작업에 해당합니다. MongoDB에서는 find 메서드를 사용하여 데이터를 조회합니다.
먼저, 간단한 예시로 MongoDB의 find 메서드를 사용해보겠습니다. Shell에서는 db.collection.find() 형태로 사용합니다. 여기서 collection은 데이터베이스 내에서의 집합 또는 컬렉션을 의미합니다.
use animalShelter
animalShelter> db.cats.find()
위 코드는 cats 집합에 있는 모든 문서를 반환합니다. 마찬가지로 db.dogs.find()는 dogs 집합에 있는 모든 문서를 반환합니다. 이러한 쿼리를 통해 전체 데이터를 확인할 수 있습니다.
그런데, 우리가 필요한 것은 종종 특정한 조건을 가진 문서를 찾는 것일 수 있습니다. 예를 들어, 코기 종의 개를 찾거나, catFriendly가 true인 개를 찾는 등의 조건이 있을 수 있습니다.
db.dogs.find({ breed: "Corgi" })
db.dogs.find({ catFriendly: true })
위와 같이 중괄호 안에 필터링 조건을 추가하여 원하는 결과를 찾을 수 있습니다. 또한, 여러 개의 조건을 결합해서 사용할 수도 있습니다.
db.dogs.find({ catFriendly: true, age: 17 })
이렇게 하면 catFriendly가 true이고 나이가 17인 개를 찾을 수 있습니다.
MongoDB의 find 메서드는 다양한 쿼리 연산자를 사용하여 더 복잡한 검색을 수행할 수 있습니다. 예를 들어, $gt 연산자를 사용하면 특정 값보다 큰 값을 찾을 수 있습니다.
db.dogs.find({ age: { $gt: 10 } })
위 코드는 나이가 10보다 큰 개를 찾습니다.
또한, findOne 메서드를 사용하면 첫 번째로 일치하는 문서 하나만 반환합니다. 이는 커서(cursor)를 반환하는 find와는 다릅니다.
db.dogs.findOne({ catFriendly: true })
이렇게 하면 첫 번째로 catFriendly가 true인 개를 반환합니다.
이렇게 MongoDB에서 데이터를 찾는 기본적인 방법을 배워보았습니다. 다음 강의에서는 더 복잡한 쿼리와 찾기에 대해 자세히 알아보겠습니다.
'백엔드(Backend) > 데이터베이스' 카테고리의 다른 글
[MongoDB] Mongo 데이터베이스에서 삭제 (0) | 2023.11.25 |
---|---|
[MongoDB] Mongo 데이터베이스 업데이트하기 (1) | 2023.11.25 |
[MongoDB] MongoDatabase에 삽입하기 (0) | 2023.11.24 |
[MongoDB] BSON이란? (0) | 2023.11.24 |
[MongoDB] MongoDB 7 설치법 : Mac OS (0) | 2023.11.24 |