MGCoreなるJSの検索ライブラリを書いた

 久々に何か書く気力が湧きました。お久しぶりでございます。
 しばらく前に某案件にて、ある元のデータリストをダウンロード後、クライアント側で(=JavaScriptを使って)条件に応じてフィルタリングして表示する、というのがあり、その検索部分をサクッと作ってみました。まあつまり、テストがちゃんと出来てなくて、どこかにバグがあるかもという意味なのですが。。。
 夜なべしてMongoDBのドキュメント見ながら、インターフェイスを合わせてみました。一晩でやった割にはそこそこのものができたんじゃないかな、と:)
 → GitHub - taiyoh/js-mgcore: search interface like MongoDB
 使い方は、結構ここが参考になると思います
 → Query Documents — MongoDB Manual

// basic
var list = [{name:'foo'},{name:'bar'},{name:'baz'}];
var db = new MGCore(list);

// case 1
var result1 = db.find({name:'foo'});
result1.toArray(); // => [{name:'foo'}]

// case 2
var result2 = db.find({name:/^ba/});
result2.toArray(); // => [{name:'bar'},{name:'baz'}]


// deep
var list2 = [{name:'foo', attr:{count:5}},{name:'bar',attr:{count:3}}];
var db2 = new MGCore(list2);

// case 3
var result3 = db2.find({'attr.count':{'$gt':3}});
result3.toArray(); // => [{name:'foo', attr:{count:5}}]

 次の段階としてやりたいのは、このMGCoreを継承したクラスでインデックスを張って、検索処理を高速化させたりしたいなぁ、とかあるのですが、あんまりいじくってる時間ないので、やりたい方はどうぞ><