76 votes

En Mongo, comment puis-je afficher les résultats lorsque je fais un .find () identique à un .findOne ()

findOne() donne un objet json joliment imprimé.

find() résulte en un objet json jarbled.

Comment puis-je faire de find() la même chose que findOne() , quand il s'agit d'afficher dans la coquille Mongo?

162voto

Rohan Points 1066

Si vous utilisez des scripts utilisant JavaScript, vous pouvez utiliser la réponse de dcrosta. Mais si vous voulez imprimer directement sur le shell interactif de mongo, vous devez ajouter pretty () à vos requêtes find ().

Tapez sur la coque: db.yourcollection.find().pretty()

20voto

dcrosta Points 11219

L'objet curseur renvoyé par find() prend en charge forEach() , vous pouvez donc utiliser:

 db.foo.find().forEach(printjson)
 

Cependant, notez que, contrairement à la sortie par défaut de find() qui affiche les 10 premiers objets, puis vous permet de choisir de poursuivre ou non l'itération, forEach() itérera l'ensemble des résultats. Ainsi, si votre requête renvoie plusieurs résultats, cela peut prendre un certain temps et ne pas être très utile. limit() est votre ami ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X