MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Có cách nào để in đầu ra shell MongoDB 'đẹp' ra một tệp không?

Vỏ cung cấp một số tính năng hay nhưng ẩn vì đó là một môi trường tương tác.

Khi bạn chạy các lệnh từ tệp javascript thông qua mongo command.js, bạn sẽ không nhận được hành vi hoàn toàn giống nhau.

Có hai cách để giải quyết vấn đề này.

(1) giả mạo lớp vỏ và khiến nó nghĩ rằng bạn đang ở chế độ tương tác

$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF

hoặc
(2) sử dụng Javascript để dịch kết quả của find() thành một JSON có thể in được

mongo dbname command.js > output.json

nơi command.js chứa cái này (hoặc tương đương):

printjson( db.collection.find().toArray() )

Thao tác này sẽ in ra một loạt kết quả, bao gồm [ ] - nếu bạn không muốn, bạn có thể lặp lại mảng và printjson() từng phần tử.

Nhân tiện, nếu bạn đang chạy chỉ một câu lệnh Javascript, bạn không phải đặt nó vào một tệp và thay vào đó bạn có thể sử dụng:

$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tạo, hiển thị và thả Bộ sưu tập trong MongoDB

  2. Nhập json từ tệp vào mongodb bằng mongoimport

  3. Làm thế nào để kết nối chính xác với cụm Atlas M0 (Bậc miễn phí) thông qua trình điều khiển Java?

  4. Mã định dạng MongoDB $ dateToString

  5. Mongodb Tham gia trên trường _id từ String đến ObjectId