MongoDB에서 특정 문서가 이미 컬렉션에 존재하는지 확인하고 싶다면 findOne() 메서드를 사용하면 됩니다. 이 메서드는 조건에 일치하는 첫 번째 문서 하나만 반환하므로, 문서의 존재 여부를 빠르게 검사할 때 매우 유용합니다.
findOne() 기본 문법
db.yourCollectionName.findOne({yourFieldName: 'yourValue'});예제용 컬렉션 생성
먼저 실습을 위해 문서가 포함된 컬렉션을 만들어 보겠습니다.
> db.checkExistingDemo.insertOne({"StudentName":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cbdf90dac184d684e3fa265")
}
> db.checkExistingDemo.insertOne({"StudentName":"Carol"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cbdf912ac184d684e3fa266")
}
> db.checkExistingDemo.insertOne({"StudentName":"Sam"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cbdf916ac184d684e3fa267")
}
> db.checkExistingDemo.insertOne({"StudentName":"Mike"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cbdf91bac184d684e3fa268")
}저장된 전체 문서 조회하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.
> db.checkExistingDemo.find().pretty();
위 명령을 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5cbdf90dac184d684e3fa265"), "StudentName" : "John" }
{ "_id" : ObjectId("5cbdf912ac184d684e3fa266"), "StudentName" : "Carol" }
{ "_id" : ObjectId("5cbdf916ac184d684e3fa267"), "StudentName" : "Sam" }
{ "_id" : ObjectId("5cbdf91bac184d684e3fa268"), "StudentName" : "Mike" }기존 문서 존재 여부 확인하기
이제 findOne() 메서드를 사용해 특정 문서가 존재하는지 확인해 보겠습니다. 예를 들어 'Carol'이라는 이름의 학생 문서가 있는지 검색하는 쿼리는 다음과 같습니다.
> db.checkExistingDemo.findOne({StudentName: 'Carol'});실행 결과는 아래와 같습니다.
{ "_id" : ObjectId("5cbdf912ac184d684e3fa266"), "StudentName" : "Carol" }참고 사항
findOne()은 조건에 일치하는 문서가 여러 개 있더라도 가장 먼저 발견된 한 개의 문서만 반환한다는 점에 유의하세요. 일치하는 문서가 없으면 null을 반환하며, 이 값을 활용하면 애플리케이션 로직에서 문서의 존재 여부를 손쉽게 판단할 수 있습니다. 또한 중복 삽입 방지나 업데이트 전 데이터 검증 등의 용도로도 널리 활용됩니다.