JavaScript實現(xiàn)的內(nèi)存數(shù)據(jù)庫LokiJS介紹和入門實例
LokiJS是一個內(nèi)存數(shù)據(jù)庫,將性能考慮放在第一位。
LokiJS支持索引和更快的文檔訪問,執(zhí)行性能非常好(近50萬OPS/秒)。其內(nèi)置DynamicView類可以用于數(shù)據(jù)子集的索引,甚至獲取更快的性能。
*閱讀這篇文章來看一看LokiJS的性能表現(xiàn)。
LokiJS支持collections(數(shù)據(jù)集),跟MongoDB的很像,并且以JSON格式將數(shù)據(jù)保存到磁盤,所以你的數(shù)據(jù)是可移植的。
LokiJS即可運行在Node.js端和瀏覽器端。
JavaScript是一種簡單易學(xué),通用的語言,所以在javascript數(shù)據(jù)庫開發(fā)非常很容易且非常高效。如果你的MongoDB還沒有退休,在下面這些情況,您可能會發(fā)現(xiàn)LokiJS是更理想的解決方案:
1.移動應(yīng)用-特別是HTML應(yīng)用。(Cordova, Phonegap)
2.Node.js內(nèi)置的為小到中型應(yīng)用設(shè)計的數(shù)據(jù)存儲
3.內(nèi)置在桌面中的應(yīng)用(Node Webkit)
LokiJS正在支持獨立服務(wù)器,可使用http/tcp客戶端訪問。
選擇你最喜歡的范式
LokiJS的功能完全利用了JavaScript的力量。
如果函數(shù)式編程是您的首選風(fēng)格,那么你肯定會喜歡使用視圖來查詢數(shù)據(jù)。
您也可以使用您偏愛的MongoDB的shell來查詢文本對象。
快速入門
安裝
LokiJS 可在npm和bower中安裝. 運行:
npm install lokijs
或
bower install lokijs
使用
創(chuàng)建數(shù)據(jù)庫:
var db = new loki('loki.json')
傳入你需要保存數(shù)據(jù)的JSON文件
創(chuàng)建數(shù)據(jù)集:
var children = db.addCollection('children')
插入文檔:
children.insert({name:'Sleipnir', legs: 8})
children.insert({name:'Jormungandr', legs: 0})
children.insert({name:'Hel', legs: 2})
獲取文檔:
children.get(1); // returns Sleipnir
children.find( {'name':'Sleipnir'} )
children.find( { legs: { '$gt' : 2 } } )
創(chuàng)建動態(tài)視圖:
var legs = children.addDynamicView('legs');
legs.applyFind( { legs: { '$gt' : 2 } )
legs.applySimpleSort('legs');
legs.data();
MapReduce(數(shù)據(jù)聚合):
children.mapReduce(
function( obj ){ return obj.legs; } ,
function( array ) {
var sum = 0;
for (var i=0; i < array.length; i++ ){
sum += array[i];
}
return ( sum / array.length ).toFixed(2);
});
相關(guān)文章
Bootstrap實現(xiàn)帶暫停功能的輪播組件(推薦)
最近小編在項目中用到了一款帶輪播組件,功能非常齊全,可以設(shè)置各種標(biāo)題樣式、動畫效果、輪播時間、開始暫停等功能,下面小編通過本文給大家詳細(xì)介紹下實現(xiàn)過程,需要的朋友參考下吧2016-11-11JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
檢查某個function是否是原生代碼,要檢測這一點,最簡單的辦法當(dāng)然是判斷函數(shù)的 toString 方法返回的值2014-09-09坐標(biāo)軸刻度取值算法之源于echarts的y軸刻度計算需求
坐標(biāo)軸刻度作為直角坐標(biāo)系中重要的組成部分,我們需要學(xué)會合理的設(shè)置坐標(biāo)軸的刻度,下面這篇文章主要給大家介紹了關(guān)于坐標(biāo)軸刻度取值算法之源于echarts的y軸刻度計算需求的相關(guān)資料,需要的朋友可以參考下2022-06-06JavaScript與ActionScript3兩者的同性與差異性
接觸JavaScript和ActionScript3也有近5年的時間了,它們都是應(yīng)用比較廣泛的腳本語言.接下來通過本文給大家介紹JavaScript與ActionScript3兩者的同性與差異性,感興趣的朋友一起學(xué)習(xí)吧2016-09-09