web-dev-qa-db-ja.com

デフォルトでMongoDBシェルできれいに印刷

Mongoにきれいな印刷出力をする方法はありますか?現在のところ、すべてが1行に出力されているため、特に入れ子になった配列や文書では読みにくくなっています。

467
raffian

注:これは、 "default"の要件を持たなかった質問の元のバージョンに対する回答です)

あなたはそれがきれいであるように頼むことができます。

db.collection.find().pretty()
808

あなたは付け加えられます

DBQuery.prototype._prettyShell = true

デフォルトでプリティプリントをグローバルに有効にするには、$HOME/.mongorc.js内のファイルに追加します。

393
staackuser2

(注:これは更新された質問に対する回答です)

CLIでこれをすることができます:

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

そしてそれはいつもきれいな結果を出力するつもりです。

46
Bhanu Chawla

これは基本的にはJavaScriptシェルなので、toArray()を使用することもできます。

db.collection.find().toArray()

しかし、これはコレクションのすべてのドキュメントを印刷します。これはpretty()とは異なり、繰り返しが可能になります。参照してください: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

16
Aafreen Sheikh

ああ、私は.pretty()がに等しいと思います:

db.collection.find().forEach(printjson);
16
Goff

Mongo-hacker(ノードモジュール)を試してみてください、それは常にきれいに印刷されます。 https://github.com/TylerBrock/mongo-hacker

さらにそれはmongo Shellを強化します(ver> 2.4のみをサポートし、現在のverは3.0です)。

  • 色付け
  • 追加のシェルコマンド(文書数のカウント/文書数のカウントなど)
  • APIの追加(db.collection.find({...})。last()、db.collection.find({...})、reverse()など)
  • 集計フレームワーク

プロダクション環境ではまだ問題はありません。

8
Gaurav Gandhi

質問に行きましたが、外部からロードされたmongoからそれを印刷する方法を理解することができませんでした。そう:

これはconsole:のためのもので、consoleで推奨されていますが、外部のmongo搭載のJavaScriptでは機能しません。

db.quizes.find().pretty()

これは外部のmongo搭載のJavaScriptで動作します。

db.quizes.find().forEach(printjson)
1
Witold Kaczurba