2012-02-05 27 views

Trả lời

733

(lưu ý: đây là câu trả lời cho phiên bản gốc của câu hỏi, mà không có những yêu cầu cho "mặc định")

Bạn có thể yêu cầu nó được khá.

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

Nếu bạn muốn đầu ra được colorized + các cải tiến khác, hãy kiểm tra https://github.com/TylerBrock/mongo-hacker @SAFX –

365

Bạn có thể thêm

DBQuery.prototype._prettyShell = true 

đến tập tin của bạn trong $HOME/.mongorc.js để cho phép in khá toàn cầu theo mặc định.

+10

Bạn sẽ muốn tạo một chức năng tùy chỉnh để vô hiệu hóa nó cho bạn. Thêm cái này vào '$ HOME /.mongorc.js': https://gist.github.com/mathrawka/6239405 Sau đó, bạn có thể làm một cái gì đó như db.users.find(). ugly() để có được nó mà không in đẹp. – staackuser2

+4

+1 Điều này thật tuyệt. Đối với những người không có tệp .mongorc.js trong thư mục $ HOME; bạn có thể tạo tệp này và thêm các lệnh trong đó. Sau khi bạn khởi động lại shell, nó hoạt động! –

+0

Làm thế nào tôi có thể xác minh trong một cli hoặc trong vỏ mongo rằng tùy chọn này đã được kích hoạt? Ý tôi là, có một lệnh đặc biệt cho nó, như 'mongo - checkConf 'pretty'', không phải bằng cách gọi' db.collection.find(). Limit (1) ' – Green

14

Vì nó là cơ bản là một vỏ javascript, bạn cũng có thể sử dụng toArray():

db.collection.find().toArray() 

Tuy nhiên, điều này sẽ in tất cả các tài liệu của bộ sưu tập không giống như pretty() mà sẽ cho phép bạn lặp. Tham khảo: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

+1

Điều thú vị là đủ, từ giao diện điều khiển' .toArray() 'hàm xuất ra JSON được định dạng tốt hơn so với hàm' .pretty() '. tức là: Bản ghi đầu tiên của bộ sưu tập của tôi khác với phần còn lại (có thể là vấn đề), nhưng '.pretty()' kết xuất nó thành '{" _id ":" VERSION "," v ":" 1.5 "} '- tất cả trên một dòng, trong đó' .toArray() 'định dạng nó tốt đẹp như phần còn lại của các bản ghi .. – wasatchwizard

14

Oh vì vậy tôi đoán .pretty() là tương đương với:

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

(lưu ý: đây là câu trả lời cho câu hỏi được cập nhật)

Bạn chỉ có thể làm điều này trên CLI:

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

Và nó luôn mang lại kết quả tốt đẹp.

+0

Đã không làm việc cho tôi - bằng cách sử dụng MongoDB 2.6.6 và (oh my) ZSH. – jononomo

+1

Điều này làm việc cho tôi một cách hoàn hảo. | Phiên bản shell MongoDB: 2.6.7 và Oh-My-Zsh [phiên bản e55c715] (https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker

6

Hãy thử với Mongo-hacker (mô đun nút), nó luôn được in đẹp. https://github.com/TylerBrock/mongo-hacker

More nó tăng cường vỏ Mongo (chỉ hỗ trợ ver> 2.4, ver hiện tại là 3.0), như

  • Colorization
  • lệnh shell bổ sung (count tài liệu/docs đếm/etc)
  • Bổ sung API (db.collection.find ({...}). Last(), db.collection.find ({...}). Reverse(), v.v.)
  • Khung tổng hợp

Tôi đang sử dụng trong khi đang trong quá trình sản xuất, chưa có vấn đề gì.

+0

Nếu tôi không có mongodb, chỉ cần sao băng cài đặt? – pihentagy

+0

Lưu ý: khi bạn cài đặt mongo-hacker bằng npm, nó dường như sẽ ghi đè '$ HOME/.mongorc.js'. – Hubro

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

trên lệnh sẽ làm cho kết quả của bạn như thế này: Using Pretty command

các stu là tên của bộ sưu tập của tôi, bạn nên sử dụng tên bộ sưu tập của riêng bạn thay vì nó. tôi hy vọng ảnh chụp màn hình sẽ giúp bạn một cách tốt đẹp.