mongo shellは一行あたり4096バイトまでしか読み取れない
こちらにissueがあがってますが、MongoDB v1.9(2011年初頭)くらいから存在している由緒正しい問題のようです。
[SERVER-13980] Interactive shell truncates line input longer than 4096 bytes - MongoDB Jira
再現コード
aaaaaaaaの長さは4087文字以上。
hoge.js
print('aaaaaa(中略)aaaaaa');
実行
mongo < hoge.js
結果
❯ mongo < hoge.js MongoDB shell version: 3.2.1 connecting to: test 2016-01-27T19:30:43.184+0900 E QUERY [thread1] SyntaxError: unterminated string literal @(shell):1:6 2016-01-27T19:30:43.185+0900 E QUERY [thread1] SyntaxError: unterminated string literal @(shell):1:0 bye
なぜこんなことに?
[SERVER-2792] replace readline with linenoise - MongoDB Jira
にて、readline→linenoiseに置き換えたのが原因のよう。
Redisの作者が作っているライブラリですね。
Redis、MongoDB、Androidで使われていると書いています。
このライブラリの一行あたり読み込むバイト数が決め打ちになっているからっぽいです。
ということは
Redis、Androidでも問題出ることもあるかもしれません。
まあ、改行入れれば解決なので、そんな問題にならんかもですが。