MongoDB Imprimir JSON sin espacios en blanco
- MongoDB Imprimir JSON sin espacios en blanco
-
Utilice el método
find()
para imprimir JSON sin espacios en blanco en MongoDB -
Utilice el objeto
cursor
para imprimirJSON
sin espacios en blanco en MongoDB
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 ] }