LokiJS是一個內存數據庫,將性能考慮放在第一位。
LokiJS支持索引和更快的文檔訪問,執行性能非常好(近50萬OPS/秒)。其內置DynamicView類可以用於數據子集的索引,甚至獲取更快的性能。
*閱讀這篇文章來看一看LokiJS的性能表現。
LokiJS支持collections(數據集),跟MongoDB的很像,並且以JSON格式將數據保存到磁盤,所以你的數據是可移植的。
LokiJS即可運行在Node.js端和浏覽器端。
JavaScript是一種簡單易學,通用的語言,所以在javascript數據庫開發非常很容易且非常高效。如果你的MongoDB還沒有退休,在下面這些情況,您可能會發現LokiJS是更理想的解決方案:
1.移動應用-特別是HTML應用。(Cordova, Phonegap)
2.Node.js內置的為小到中型應用設計的數據存儲
3.內置在桌面中的應用(Node Webkit)
LokiJS正在支持獨立服務器,可使用http/tcp客戶端訪問。
選擇你最喜歡的范式
LokiJS的功能完全利用了JavaScript的力量。
如果函數式編程是您的首選風格,那麼你肯定會喜歡使用視圖來查詢數據。
您也可以使用您偏愛的MongoDB的shell來查詢文本對象。
快速入門
安裝
LokiJS 可在npm和bower中安裝. 運行:
代碼如下:
npm install lokijs
或
代碼如下:
bower install lokijs
使用
創建數據庫:
代碼如下:
var db = new loki('loki.json')
傳入你需要保存數據的JSON文件
創建數據集:
代碼如下:
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 } } )
創建動態視圖:
代碼如下:
var legs = children.addDynamicView('legs');
legs.applyFind( { legs: { '$gt' : 2 } )
legs.applySimpleSort('legs');
legs.data();
MapReduce(數據聚合):
代碼如下:
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);
});