JavaScript實(shí)現(xiàn)的內(nèi)存數(shù)據(jù)庫(kù)LokiJS介紹和入門實(shí)例
LokiJS是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),將性能考慮放在第一位。
LokiJS支持索引和更快的文檔訪問(wèn),執(zhí)行性能非常好(近50萬(wàn)OPS/秒)。其內(nèi)置DynamicView類可以用于數(shù)據(jù)子集的索引,甚至獲取更快的性能。
*閱讀這篇文章來(lái)看一看LokiJS的性能表現(xiàn)。
LokiJS支持collections(數(shù)據(jù)集),跟MongoDB的很像,并且以JSON格式將數(shù)據(jù)保存到磁盤,所以你的數(shù)據(jù)是可移植的。
LokiJS即可運(yùn)行在Node.js端和瀏覽器端。
JavaScript是一種簡(jiǎn)單易學(xué),通用的語(yǔ)言,所以在javascript數(shù)據(jù)庫(kù)開(kāi)發(fā)非常很容易且非常高效。如果你的MongoDB還沒(méi)有退休,在下面這些情況,您可能會(huì)發(fā)現(xiàn)LokiJS是更理想的解決方案:
1.移動(dòng)應(yīng)用-特別是HTML應(yīng)用。(Cordova, Phonegap)
2.Node.js內(nèi)置的為小到中型應(yīng)用設(shè)計(jì)的數(shù)據(jù)存儲(chǔ)
3.內(nèi)置在桌面中的應(yīng)用(Node Webkit)
LokiJS正在支持獨(dú)立服務(wù)器,可使用http/tcp客戶端訪問(wèn)。
選擇你最喜歡的范式
LokiJS的功能完全利用了JavaScript的力量。
如果函數(shù)式編程是您的首選風(fēng)格,那么你肯定會(huì)喜歡使用視圖來(lái)查詢數(shù)據(jù)。
您也可以使用您偏愛(ài)的MongoDB的shell來(lái)查詢文本對(duì)象。
快速入門
安裝
LokiJS 可在npm和bower中安裝. 運(yùn)行:
npm install lokijs
或
bower install lokijs
使用
創(chuàng)建數(shù)據(jù)庫(kù):
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)建動(dò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);
});
- javascript封裝的sqlite操作類實(shí)例
- Javascript連接Access數(shù)據(jù)庫(kù)完整實(shí)例
- JavaScript數(shù)據(jù)庫(kù)TaffyDB用法實(shí)例分析
- JavaScript中連接操作Oracle數(shù)據(jù)庫(kù)實(shí)例
- JavaScript中操作Mysql數(shù)據(jù)庫(kù)實(shí)例
- JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù)
- JavaScript操作Oracle數(shù)據(jù)庫(kù)示例
- js+html5操作sqlite數(shù)據(jù)庫(kù)的方法
相關(guān)文章
uniapp使用scroll-view實(shí)現(xiàn)左右上下滑動(dòng)功能
最近在用uni-app開(kāi)發(fā)小程序時(shí),需要用scroll-view做出左右上下滑動(dòng)效果,所以下面這篇文章主要給大家介紹了關(guān)于uniapp使用scroll-view實(shí)現(xiàn)左右上下滑動(dòng)功能的相關(guān)資料,需要的朋友可以參考下2022-11-11
JS數(shù)據(jù)結(jié)構(gòu)之隊(duì)列結(jié)構(gòu)詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法中的隊(duì)列結(jié)構(gòu),文中通過(guò)簡(jiǎn)單的示例介紹了隊(duì)列結(jié)構(gòu)的原理與實(shí)現(xiàn),需要的可以參考一下2022-11-11
echarts圖形x、y坐標(biāo)文字設(shè)置間隔顯示及相關(guān)問(wèn)題詳解
最近在做一個(gè)web的數(shù)據(jù)統(tǒng)計(jì)部分用到了Echart,下面這篇文章主要給大家介紹了關(guān)于echarts圖形x、y坐標(biāo)文字設(shè)置間隔顯示及相關(guān)問(wèn)題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
javascript實(shí)現(xiàn)限制上傳文件大小
這篇文章主要介紹了javascript實(shí)現(xiàn)限制上傳文件大小的方法和示例,需要的朋友可以參考下2015-02-02
極致之美——百行代碼實(shí)現(xiàn)全新智能語(yǔ)言
極致之美——百行代碼實(shí)現(xiàn)全新智能語(yǔ)言...2007-03-03

