2013-08-16 76 views
4

使用mongo v2.4.5 shell,db.col.find()。pretty()在我的OSX控制檯或linux ubuntu 12.04 bash上打印的效果並不理想。如何啓用mongodb cli漂亮打印? - db.col.find()。pretty()不起作用

有輸出不存在與不漂亮()

> db.people.find() 
{ "_id" : ObjectId("520d293752cfe6ece5d3fd77"), "name" : "Andrew" } 
{ "_id" : ObjectId("520e448b77803f8f15fcfedb"), "name" : "Amy" } 
> 
> db.people.find().pretty() 
{ "_id" : ObjectId("520d293752cfe6ece5d3fd77"), "name" : "Andrew" } 
{ "_id" : ObjectId("520e448b77803f8f15fcfedb"), "name" : "Amy" } 
> 

我缺少什麼? (瘋狂的東西基本沒有疑問)

THX


更新:衛生署!回答如下。我沒有意識到這樣一個簡單的文檔不會被認可。嵌套的文檔對我來說很不錯。

+1

如果您在文檔中添加了第三個字段(例如'{_id:(...),「name」:「Andrew」,年齡:40}'),那麼在打電話時, '漂亮()' –

回答

9

.pretty只會真正改變的事情,當你嵌套或較大的文檔:

> db.so.insert({ name: "Derick" }); 
> db.so.insert({ f: 'Derick', s: 'Rethans', t: 'derickr' }); 
> db.so.insert({ name: { f: 'Derick', s: 'Rethans' } }); 

> db.so.find(); 
{ "_id" : ObjectId("520e49a21d7b77441eaf6446"), "name" : "Derick" } 
{ "_id" : ObjectId("520e49b11d7b77441eaf6447"), "name" : { "f" : "Derick", "s" : "Rethans" } } 

> db.so.find().pretty(); 
{ "_id" : ObjectId("520e49a21d7b77441eaf6446"), "name" : "Derick" } 
{ 
    "_id" : ObjectId("520e4f895a4563e39f06b030"), 
    "f" : "Derick", 
    "s" : "Rethans", 
    "t" : "derickr" 
} 
{ 
    "_id" : ObjectId("520e49b11d7b77441eaf6447"), 
    "name" : { 
     "f" : "Derick", 
     "s" : "Rethans" 
    } 
} 

所以我相信它工作得很好,爲你!

+1

'pretty()'不會更改<3字段的文檔(正如我通過實驗發現的那樣)。如果你的文件將有3個字段 - 它將被美化。但不僅如此,文件嵌套對象 –

+0

謝謝,並更新 – Derick

1

您可以在$HOME/.mongorc.js中將這些行添加到您的文件中,以啓用漂亮打印。

DBQuery.prototype._prettyShell = true 

或者,您也可以使用此命令,打印文檔在陣列格式:

db.collection.find().toArray() 

喝彩!

+0

這沒有幫助。 'pretty()'做同樣的事情:function(){this._prettyShell = true; 返回此; }' –

+0

@SergeyGavruk他沒有錯。我知道,你不必在第一個解決方案 – callmekatootie

+0

@callmekatootie後面添加'pretty()'到每個命令。我說,這不會因爲這個評論幫助http://stackoverflow.com/questions/18277129/how-do-i-enable-mongodb-cli-pretty-print-db-col-find-pretty-not-工作/ 18277285?noredirect = 1#comment26810566_18277359 –