MongoDB Imprimer JSON sans espaces blancs
- MongoDB Imprimer JSON sans espaces blancs
-
Utilisez la méthode
find()
pour imprimer JSON sans espaces blancs dans MongoDB -
Utilisez l’objet
cursor
pour imprimerJSON
sans espaces dans MongoDB
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 ] }