MongoDB Imprimir JSON sin espacios en blanco

Mehvish Ashiq 30 enero 2023
  1. MongoDB Imprimir JSON sin espacios en blanco
  2. Utilice el método find() para imprimir JSON sin espacios en blanco en MongoDB
  3. Utilice el objeto cursor para imprimir JSON sin espacios en blanco en MongoDB
MongoDB Imprimir JSON sin espacios en blanco

Este artículo enseña cómo imprimir documentos JSON sin espacios en blanco en MongoDB con la ayuda de diferentes fragmentos de código.

MongoDB Imprimir JSON sin espacios en blanco

Vamos a crear una colección de muestra e insertar tres documentos para usar en los ejemplos de código más adelante en este tutorial para comprenderlo mejor.

Código de ejemplo:

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

Producción :

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

Como podemos ver, el resultado anterior tiene muchos espacios en blanco que no queremos. Deseamos imprimir estos documentos JSON resultantes sin espacios en blanco, como se indica a continuación.

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

Utilice el método find() para imprimir JSON sin espacios en blanco en MongoDB

Código de ejemplo:

> db.printjson.find();

Producción :

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

Uno de los enfoques más simples es usar el método find() solo en lugar de find().pretty().

Utilice el objeto cursor para imprimir JSON sin espacios en blanco en MongoDB

Antes de pasar a los ejemplos de código, es necesario conocer el objeto cursor. Cada vez que usamos el método find() para recuperar documentos de una colección en particular, devuelve un puntero que llamamos cursor.

Podemos decir que el puntero devuelto por el método find() se conoce como objeto cursor.

Código de ejemplo:

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

Producción :

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

En este código, guardamos el puntero devuelto por el método find() en una variable llamada cursor. Además, iteramos sobre la variable cursor para imprimir los documentos JSON sin espacios en blanco.

Aquí, el método cursor.hasNext() devuelve verdadero si el cursor devuelto por db.printjson.find() puede iterar más para devolver más documentos. El método next() se utiliza para acceder al siguiente documento.

En lugar de guardar el puntero en una variable y luego iterar sobre esa variable, podemos usar la consulta más optimizada que se muestra a continuación.

Código de ejemplo:

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

Producción :

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

A continuación, podemos iterar sobre la variable cursor e imprimir el documento resultante en forma de matriz usando el método toArray(), como se muestra a continuación.

Código de ejemplo:

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

Producción :

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

Alternativamente, también podemos hacer lo mismo de la siguiente manera.

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

Producción :

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

Artículo relacionado - MongoDB Print