2012-02-05 62 views

回答

733

注:這是答案原始版本的問題,它沒有爲「默認」要求)

你可以問它是漂亮。

db.collection.find().pretty() 
+16

如果你想輸出colorized +其他增強檢查https://github.com/TylerBrock/mongo-hacker @SAFX – 2012-10-10 22:42:07

365

可以在$HOME/.mongorc.js添加

DBQuery.prototype._prettyShell = true 

將文件默認啓用全局漂亮的打印。

+10

你會想要一個自定義函數,爲你禁用它。將此添加到您的$ HOME /。mongorc.js':https://gist.github.com/mathrawka/6239405然後,你可以做一些像db.users.find()。醜陋()來獲得它沒有漂亮的打印。 – staackuser2 2013-08-15 09:01:11

+4

+1這太好了。對於那些在$ HOME文件夾中沒有.mongorc.js文件的用戶;你可以創建這個文件並在其中添加命令。重新啓動外殼後,它可以正常工作! – 2013-09-21 11:45:22

+0

如何在cli或mongo shell中驗證此選項是否已啓用?我的意思是,是否有一個特殊的命令,比如'mongo --checkConf'pretty'',而不是通過調用'db.collection.find()。limit(1)' – Green 2015-08-23 06:24:44

14

因爲它基本上是一個JavaScript的外殼,你也可以使用toArray()

db.collection.find().toArray() 

然而,這將打印不像pretty()的集合中的所有文件,可以讓你進行迭代。 參見:http://docs.mongodb.org/manual/reference/method/cursor.toArray/

+1

有趣的是,從控制檯的'.toArray ()'函數輸出比'.pretty()'函數更好的格式化JSON。即:我的集合的第一個記錄與其餘的不同(可能是問題),但'.pretty()'把它轉儲爲'{「_id」:「VERSION」,「v」:「1.5」} ' - 所有在一行中,'.toArray()'格式化它好像其餘的記錄.. – wasatchwizard 2015-08-06 18:14:51

14

哦,所以我想.pretty()等於:

db.collection.find().forEach(printjson); 
40

(注:這是回答這個問題的更新)

你可以只是這樣做對CLI:

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

它總是會輸出漂亮的結果。

+0

沒有爲我工作 - 使用MongoDB 2.6.6和(哦,我的)ZSH。 – jononomo 2015-01-08 01:18:15

+1

這對我來說完美無缺。 | MongoDB shell版本:2.6.7和Oh-My-Zsh [版本e55c715](https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker 2015-02-27 00:23:31

6

給Mongo-hacker(節點模塊)一個嘗試,它總是打印漂亮。 https://github.com/TylerBrock/mongo-hacker

更多它增強蒙戈殼(僅支持版本> 2.4,當前版本是3.0),像

  • 彩色化
  • 附加外殼命令(計數文件/計數文檔/等)
  • API附加(db.collection.find({...})。最後(),db.collection.find({...})。反向()等)
  • 聚合框架

我在生產env時使用,沒有問題。

+0

如果我沒有mongodb,只是安裝流星? – pihentagy 2016-01-27 17:56:28

+0

注意:當你使用npm安裝mongo-hacker時,它顯然會覆蓋'$ HOME/.mongorc.js'。 – Hubro 2016-06-09 11:50:29

1
db.collection.find().pretty() 

上面的命令將讓你的結果是這樣的:Using Pretty command

stu是我收集的名字,你應該使用自己的收藏名稱來代替它。我希望截圖幫助你以一種好的方式。