MongoDB JSON ohne Leerzeichen drucken

Mehvish Ashiq 13 Juni 2022
  1. MongoDB JSON ohne Leerzeichen drucken
  2. Verwenden Sie die find()-Methode, um JSON ohne Leerzeichen in MongoDB zu drucken
  3. Verwenden Sie das Objekt cursor, um JSON ohne Leerzeichen in MongoDB zu drucken
MongoDB JSON ohne Leerzeichen drucken

Dieser Artikel lehrt, wie man JSON-Dokumente ohne Leerzeichen in MongoDB mit Hilfe verschiedener Code-Snippets druckt.

MongoDB JSON ohne Leerzeichen drucken

Lassen Sie uns eine Beispielsammlung erstellen und drei Dokumente einfügen, die später in diesem Tutorial in den Codebeispielen verwendet werden sollen, um sie besser zu verstehen.

Beispielcode:

> 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();

AUSGANG:

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

Wie wir sehen können, enthält die oben angegebene Ausgabe viele Leerzeichen, die wir nicht wollen. Wir möchten diese resultierenden JSON-Dokumente wie unten angegeben ohne Leerzeichen drucken.

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

Verwenden Sie die find()-Methode, um JSON ohne Leerzeichen in MongoDB zu drucken

Beispielcode:

> db.printjson.find();

AUSGANG:

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

Einer der einfachsten Ansätze besteht darin, anstelle von find().pretty() nur die Methode find() zu verwenden.

Verwenden Sie das Objekt cursor, um JSON ohne Leerzeichen in MongoDB zu drucken

Bevor Sie zu den Codebeispielen übergehen, ist es notwendig, das cursor-Objekt zu kennen. Immer wenn wir die Methode find() verwenden, um Dokumente aus einer bestimmten Sammlung abzurufen, gibt sie einen Zeiger zurück, den wir cursor nennen.

Wir können sagen, dass der von der Methode find() zurückgegebene Zeiger als cursor-Objekt bekannt ist.

Beispielcode:

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

AUSGANG:

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

In diesem Code speichern wir den von der Methode find() zurückgegebenen Zeiger in einer Variablen namens cursor. Außerdem iterieren wir über die Variable cursor, um die JSON-Dokumente ohne Leerzeichen zu drucken.

Hier gibt die Methode cursor.hasNext() true zurück, wenn der von db.printjson.find() zurückgegebene Cursor weiter iterieren kann, um weitere Dokumente zurückzugeben. Die Methode next() wird verwendet, um Zugriff auf das nächste Dokument zu erhalten.

Anstatt den Zeiger in einer Variablen zu speichern und dann über diese Variable zu iterieren, können wir die unten angegebene optimiertere Abfrage verwenden.

Beispielcode:

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

AUSGANG:

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

Als nächstes können wir über die Variable cursor iterieren und das resultierende Dokument in Form eines Arrays mit der Methode toArray() drucken, wie unten gezeigt.

Beispielcode:

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

AUSGANG:

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

Alternativ können wir dasselbe auch wie folgt tun.

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

AUSGANG:

{ "_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

Verwandter Artikel - MongoDB Print