Shell menyediakan beberapa fitur yang bagus tetapi tersembunyi karena ini adalah lingkungan yang interaktif.
Saat Anda menjalankan perintah dari file javascript melalui perintah mongo.js, Anda tidak akan mendapatkan perilaku yang sama persis.
Ada dua cara untuk mengatasinya.
(1) memalsukan cangkang dan membuatnya berpikir Anda berada dalam mode interaktif
$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF
atau
(2) gunakan Javascript untuk menerjemahkan hasil find()
menjadi JSON yang dapat dicetak
mongo dbname command.js > output.json
di mana command.js berisi ini (atau yang setara):
printjson( db.collection.find().toArray() )
Ini akan cukup mencetak larik hasil, termasuk [ ]
- jika Anda tidak menginginkannya, Anda dapat mengulangi array dan printjson()
setiap elemen.
Omong-omong, jika Anda hanya menjalankan satu pernyataan Javascript, Anda tidak perlu memasukkannya ke dalam file dan sebagai gantinya Anda dapat menggunakan:
$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json