14 Ocak 2013

Javascript ile veri sorgulama: LINQ

ile hasan

Bir süredir üzerinde çalıştığım klasik HTML tabloları MS Excel’deki gibi Pivot Table mantığında işleyebilecek bir mini javascript projesi giderek daha karmaşık hale gelmeye başladı. Yolun başında bağımsız fonksiyonlarla kullanıyorduk ama jQuery ile o kadar iç içe idi ki en iyisi bir jQuery plugini olsun dedik. Arayüzünde Twitter Bootstrap kullandığımız projemizi github hesabımızdan takip edebilirsiniz. Henüz tamamlanmadı ama kısa sürede neticeye varmayı ümit ediyoruz.

Projede başta Jquery ve Twitter Bootstrap olmak üzere pek çok javascript plugin kullandık. Bunlardan biri bu yazının konusu: LINQ.

LINQ’i, javascript tabanlı bir data sorgulama aracı olarak tarif edebiliriz. JSON tabanlı veriyi istemci üzerinde istediğini kriterlere göre sorgulama imkanı veren ve zincir (chain) yapısıyla sorguyu istediğiniz kadar derinleştirebileceğiniz harika bir araç. Ayrıca sıralama ve sütunlar arasında filtreleme imkanı da veriyor. Pivot Table’larla uğraşırken tam da lazım olacak bir ürün! Yapanın ellerine sağlık.

Örneğin


var data = [
{Ad:"Mustafa",Soyad:"Alkan",Sinif:"A",Yas:4},
{Ad:"Onur",Soyad:"Sahin",Sinif:"A",Yas:5},
{Ad:"Burak",Soyad:"Ozdemir",Sinif:"B",Yas:4},
{Ad:"Mustafa",Soyad:"Alkan",Sinif:"B",Yas:2}
];

şeklinde bir datamız olsun. Bu datadan A sınıfındakilerin Ad’larını yaş sırasıyla çekmek için;

var sorgu = JSLINQ(data)
.Where(function(item){ return item.Sinif == "A"; })
.OrderBy(function(item) { return item.Yas; })
.Select(function(item){ return item.Ad; });

şeklinde sorgu oluşturabiliyoruz. Bu sorguya aynı şekilde Where() ile devam edip bu datayı kullanmaya devam edebilirsiniz. Hızlı ve kullanımı kolay bir araç.