Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 스크립트 결과를 출력하는 방법 (printjson() 완벽 가이드)

MongoDB에서 printjson()으로 스크립트 결과 출력하기

MongoDB 셸에서 쿼리나 스크립트의 실행 결과를 보기 좋게 출력하려면 printjson() 함수를 사용하면 됩니다. 이 함수는 BSON 문서를 사람이 읽기 쉬운 JSON 형식으로 정렬해 화면에 출력해 주기 때문에, 디버깅이나 데이터 확인 작업에서 매우 유용합니다.

1단계: 샘플 컬렉션 생성하기

먼저 insertOne() 메서드를 사용해 문서가 담긴 컬렉션을 생성해 보겠습니다.

> db.printResultScriptDemo.insertOne({"StudentName":"John","StudentAge":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cf22c02b64a577be5a2bc0b")
}
> db.printResultScriptDemo.insertOne({"StudentName":"Carol","StudentAge":20});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cf22c09b64a577be5a2bc0c")
}
> db.printResultScriptDemo.insertOne({"StudentName":"David","StudentAge":19});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cf22c11b64a577be5a2bc0d")
}

위 명령을 실행하면 printResultScriptDemo라는 이름의 컬렉션에 학생 정보 세 건이 순차적으로 저장됩니다.

2단계: find() 메서드로 전체 문서 조회하기

find() 메서드를 사용하면 컬렉션에 있는 모든 문서를 한 번에 확인할 수 있습니다.

> db.printResultScriptDemo.find();

위 쿼리는 다음과 같은 결과를 반환합니다.

{ "_id" : ObjectId("5cf22c02b64a577be5a2bc0b"), "StudentName" : "John", "StudentAge" : 21 }
{ "_id" : ObjectId("5cf22c09b64a577be5a2bc0c"), "StudentName" : "Carol", "StudentAge" : 20 }
{ "_id" : ObjectId("5cf22c11b64a577be5a2bc0d"), "StudentName" : "David", "StudentAge" : 19 }

다만 이 방식은 문서가 한 줄로 길게 출력되어 필드가 많아질수록 가독성이 떨어집니다.

3단계: printjson()으로 스크립트 결과 예쁘게 출력하기

결과를 구조화된 형태로 출력하려면 커서(cursor)의 hasNext()next() 메서드를 반복문과 함께 사용하고, 각 문서를 printjson()으로 출력하면 됩니다.

> var document = db.printResultScriptDemo.find();
> while (document.hasNext()) {
   printjson(document.next());
}

실행하면 다음과 같이 각 문서가 들여쓰기된 JSON 형식으로 깔끔하게 출력됩니다.

{
   "_id" : ObjectId("5cf22c02b64a577be5a2bc0b"),
   "StudentName" : "John",
   "StudentAge" : 21
}
{
   "_id" : ObjectId("5cf22c09b64a577be5a2bc0c"),
   "StudentName" : "Carol",
   "StudentAge" : 20
}
{
   "_id" : ObjectId("5cf22c11b64a577be5a2bc0d"),
   "StudentName" : "David",
   "StudentAge" : 19
}

정리

MongoDB에서 스크립트 결과를 출력할 때는 다음 두 가지 방식을 기억하면 됩니다.

  • find()만 사용: 빠르게 결과를 확인할 수 있지만, 문서가 한 줄로 길게 출력되어 복잡한 데이터는 읽기 어렵습니다.
  • while 루프 + printjson() 조합: 커서를 순회하며 각 문서를 정렬된 JSON 형식으로 출력하므로, 필드가 많은 문서도 한눈에 파악할 수 있습니다.

특히 자바스크립트 기반의 MongoDB 셸에서 반복 작업을 수행할 때 printjson()은 결과 검증과 디버깅에 없어서는 안 될 필수 도구입니다.