MongoDBのshellで、クエリ結果をファイルに保存(または標準出力)する方法

shellにログインした状態でクエリ結果をファイルに保存しかったのですが、やり方が見つかりませんでした。

クエリをjsファイルとしてあらかじめ用意して、mongoクライアントに渡してやるとうまくいきました。

query.js
var query = {action:"hoge"};
db.userlog.find(query).forEach(function(x){ print(x.user_id); });
上記query.jsファイルをmongoクライアントに食わせると、結果を標準出力に吐いてくれます。
$ mongo  host/dbname query.js
MongoDB shell version: 2.0.1
connecting to: mem1/mycol
205368
206859
196658
152520
156449
156449
234470

MySQLやPostgreSQLでSQLファイル実行するような感覚で使えますね。

Enjoy!
追記
--quietオプションをつけると、余分な出力(バージョン表示とか)を抑制することができます。
$ mongo --quiet host/dbname query.js
205368
206859
196658
参考:MongoDBのshellを使い倒す
カテゴリ: