MongoDB Imprimer JSON sans espaces blancs

Mehvish Ashiq 30 janvier 2023
  1. MongoDB Imprimer JSON sans espaces blancs
  2. Utilisez la méthode find() pour imprimer JSON sans espaces blancs dans MongoDB
  3. Utilisez l’objet cursor pour imprimer JSON sans espaces dans MongoDB
MongoDB Imprimer JSON sans espaces blancs

Cet article explique comment imprimer des documents JSON sans espaces dans MongoDB à l’aide de différents extraits de code.

MongoDB Imprimer JSON sans espaces blancs

Créons un exemple de collection et insérons trois documents à utiliser dans les exemples de code plus loin dans ce didacticiel pour mieux le comprendre.

Exemple de code :

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

PRODUCTION:

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

Comme nous pouvons le voir, la sortie donnée ci-dessus contient de nombreux espaces blancs que nous ne voulons pas. Nous souhaitons imprimer ces documents JSON résultants sans espaces, comme indiqué ci-dessous.

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

Utilisez la méthode find() pour imprimer JSON sans espaces blancs dans MongoDB

Exemple de code :

> db.printjson.find();

PRODUCTION:

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

L’une des approches les plus simples consiste à utiliser la méthode find() uniquement au lieu de find().pretty().

Utilisez l’objet cursor pour imprimer JSON sans espaces dans MongoDB

Avant de passer aux exemples de code, il est nécessaire de connaître l’objet curseur. Chaque fois que nous utilisons la méthode find() pour récupérer des documents d’une collection particulière, elle renvoie un pointeur que nous appelons un curseur.

On peut dire que le pointeur renvoyé par la méthode find() est appelé un objet cursor.

Exemple de code :

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

PRODUCTION:

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

Dans ce code, nous sauvegardons le pointeur retourné par la méthode find() dans une variable nommée cursor. De plus, nous itérons sur la variable cursor pour imprimer les documents JSON sans espaces.

Ici, la méthode cursor.hasNext() renvoie true si le curseur renvoyé par le db.printjson.find() peut itérer davantage pour renvoyer plus de documents. La méthode next() est utilisée pour accéder au document suivant.

Au lieu d’enregistrer le pointeur dans une variable, puis d’itérer sur cette variable, nous pouvons utiliser la requête plus optimisée donnée ci-dessous.

Exemple de code :

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

PRODUCTION:

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

Ensuite, nous pouvons parcourir la variable cursor et imprimer le document résultant sous la forme d’un tableau en utilisant la méthode toArray(), comme indiqué ci-dessous.

Exemple de code :

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

PRODUCTION:

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

Alternativement, nous pouvons également faire la même chose comme suit.

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

PRODUCTION:

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

Article connexe - MongoDB Print