공백 없이 MongoDB 인쇄 JSON

Mehvish Ashiq 2023년1월30일
  1. 공백 없이 MongoDB 인쇄 JSON
  2. find() 메소드를 사용하여 MongoDB에서 공백 없이 JSON 인쇄
  3. cursor 개체를 사용하여 MongoDB에서 공백 없이 JSON 인쇄
공백 없이 MongoDB 인쇄 JSON

이 기사에서는 다양한 코드 조각을 사용하여 MongoDB에서 공백 없이 JSON 문서를 인쇄하는 방법을 설명합니다.

공백 없이 MongoDB 인쇄 JSON

샘플 컬렉션을 만들고 더 잘 이해하기 위해 이 자습서의 뒷부분에 나오는 코드 예제에서 사용할 세 개의 문서를 삽입해 보겠습니다.

예제 코드:

> db.createCollection('printjson');
> db.printjson.insertMany([
    {"_id": "ab01", array: ['element1', 'element2'], results: [3,4]},
    {"_id": "cd02", array: ['element1', 'element2'], results: [7,3]},
    {"_id": "ef03", array: ['element1', 'element2'], results: [9,9]}
]);
> db.printjson.find().pretty();

출력:

{
        "_id" : "ab01",
        "array" : [
                "element1",
                "element2"
        ],
        "results" : [
                3,
                4
        ]
}
{
        "_id" : "cd02",
        "array" : [
                "element1",
                "element2"
        ],
        "results" : [
                7,
                3
        ]
}
{
        "_id" : "ef03",
        "array" : [
                "element1",
                "element2"
        ],
        "results" : [
                9,
                9
        ]
}

우리가 볼 수 있듯이, 위에 주어진 출력에는 우리가 원하지 않는 많은 공백이 있습니다. 우리는 아래와 같이 공백 없이 결과 JSON 문서를 인쇄하기를 원합니다.

{ "_id" : "ab01", "array" : [ "element1", "element2" ], "results" : [ 3, 4 ] }
{ "_id" : "cd02", "array" : [ "element1", "element2" ], "results" : [ 7, 3 ] }
{ "_id" : "ef03", "array" : [ "element1", "element2" ], "results" : [ 9, 9 ] }

find() 메소드를 사용하여 MongoDB에서 공백 없이 JSON 인쇄

예제 코드:

> db.printjson.find();

출력:

{ "_id" : "ab01", "array" : [ "element1", "element2" ], "results" : [ 3, 4 ] }
{ "_id" : "cd02", "array" : [ "element1", "element2" ], "results" : [ 7, 3 ] }
{ "_id" : "ef03", "array" : [ "element1", "element2" ], "results" : [ 9, 9 ] }

가장 간단한 접근 방식 중 하나는 find().pretty() 대신 find() 메서드만 사용하는 것입니다.

cursor 개체를 사용하여 MongoDB에서 공백 없이 JSON 인쇄

코드 예제로 이동하기 전에 cursor 객체를 알아야 합니다. find() 메소드를 사용하여 특정 컬렉션에서 문서를 검색할 때마다 커서라고 하는 포인터를 반환합니다.

find() 메소드에 의해 반환된 포인터는 cursor 객체로 알려져 있다고 말할 수 있습니다.

예제 코드:

> var cursor = db.printjson.find();
> while(cursor.hasNext()){
    printjsononeline(cursor.next());
}

출력:

{ "_id" : "ab01",  "array" : [ "element1", "element2" ],  "results" : [ 3, 4 ] }
{ "_id" : "cd02",  "array" : [ "element1", "element2" ],  "results" : [ 7, 3 ] }
{ "_id" : "ef03",  "array" : [ "element1", "element2" ],  "results" : [ 9, 9 ] }

이 코드에서 find() 메서드가 반환한 포인터를 cursor라는 변수에 저장합니다. 또한 cursor 변수를 반복하여 공백 없이 JSON 문서를 인쇄합니다.

여기서 cursor.hasNext() 메소드는 db.printjson.find()에 의해 반환된 커서가 더 많은 문서를 반환하기 위해 더 반복할 수 있는 경우 true를 반환합니다. next() 메소드는 다음 문서에 액세스하는 데 사용됩니다.

포인터를 변수에 저장한 다음 해당 변수를 반복하는 대신 아래에 주어진 보다 최적화된 쿼리를 사용할 수 있습니다.

예제 코드:

> db.printjson.find().forEach(printjsononeline);

출력:

{ "_id" : "ab01",  "array" : [ "element1", "element2" ],  "results" : [ 3, 4 ] }
{ "_id" : "cd02",  "array" : [ "element1", "element2" ],  "results" : [ 7, 3 ] }
{ "_id" : "ef03",  "array" : [ "element1", "element2" ],  "results" : [ 9, 9 ] }

다음으로 cursor 변수를 반복하고 아래와 같이 toArray() 메서드를 사용하여 배열 형식으로 결과 문서를 인쇄할 수 있습니다.

예제 코드:

> var cursor = db.printjson.find();
> var documents = cursor.toArray();
> var i=0;
> while(i<documents.length){
      printjsononeline(cursor[i]);
      i++;
  }

출력:

{ "_id" : "ab01",  "array" : [ "element1", "element2" ],  "results" : [ 3, 4 ] }
{ "_id" : "cd02",  "array" : [ "element1", "element2" ],  "results" : [ 7, 3 ] }
{ "_id" : "ef03",  "array" : [ "element1", "element2" ],  "results" : [ 9, 9 ] }

또는 다음과 같이 동일한 작업을 수행할 수도 있습니다.

> var cursor = db.printjson.find();
> var i=0;
> while(i<cursor.count()){
      printjsononeline(cursor[i]);
      i++;
  }

출력:

{ "_id" : "ab01",  "array" : [ "element1", "element2" ],  "results" : [ 3, 4 ] }
{ "_id" : "cd02",  "array" : [ "element1", "element2" ],  "results" : [ 7, 3 ] }
{ "_id" : "ef03",  "array" : [ "element1", "element2" ],  "results" : [ 9, 9 ] }
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MongoDB Print