The ".find()" call returns a cursor. The shell adds value in that it will iterate over the cursor and print the first X results and allow for iteration.
To run your query using --eval try:
mongo myhost:myport/mydb --eval "db.mycollection.find().forEach(printjson)"