MongoDBでらくらくバッチ処理をやる(Javascriptファイルを実行する)方法

MongoDBで、バッチ処理でテストデータを流し込みたいときはどうすればよいでしょうか?

実はとても簡単です。

任意のJavascriptファイルをmongoクライアントに渡してやるだけです。
$ bin/mongo hostname/dbname  --quite file.js

例:ダミーのユーザデータを1万件流し込む方法

下記のようなJavascriptをファイルを作成します。
make_users.js
for (var i = 1; i<= 10000 ; i++) {

  var user = {
    id : i,
    name : "nanashi_" + i ,
    created_on : new Date()
  };

  db.collection.save(user);
}
実行します。
$ bin/mongo --quiet localhost/testdb  make_users.js
1万件でも1秒未満で終わります。速い!

Mongoシェルに入って結果を確認します。
$ bin/mongo  localhost/testdb

MongoDB shell version: 2.0.4
connecting to: localhost/testdb

> db.collection.count();
10000
おー、ちゃんと1万件と出ました。
中身はどうなってるでしょうか。
> db.collection.find().limit(10);
{ "_id" : ObjectId("4f99796868d127208cdd04ab"), "id" : 1, "name" : "nanashi_1", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04ac"), "id" : 2, "name" : "nanashi_2", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04ad"), "id" : 3, "name" : "nanashi_3", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04ae"), "id" : 4, "name" : "nanashi_4", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04af"), "id" : 5, "name" : "nanashi_5", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04b0"), "id" : 6, "name" : "nanashi_6", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04b1"), "id" : 7, "name" : "nanashi_7", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04b2"), "id" : 8, "name" : "nanashi_8", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04b3"), "id" : 9, "name" : "nanashi_9", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
{ "_id" : ObjectId("4f99796868d127208cdd04b4"), "id" : 10, "name" : "nanashi_10", "created_on" : ISODate("2012-04-26T16:35:52.736Z") }
ばっちりですね!

こんな感じで、Javascriptさえ書ければ割とどうにでもできてしまうMongoDBかわいいよMongoDB

関連記事

カテゴリ:

人気記事