JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
程序员文章站
2022-03-25 13:14:38
...
LokiJS是一个内存数据库,将性能考虑放在第一位。
LokiJS支持索引和更快的文档访问,执行性能非常好(近50万OPS/秒)。其内置DynamicView类可以用于数据子集的索引,甚至获取更快的性能。
npm install lokijs
或
bower install lokijs
var db = new loki('loki.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();
children.mapReduce(
function( obj ){ return obj.legs; } ,
function( array ) {
var sum = 0;
for (var i=0; i sum += array[i];
}
return ( sum / array.length ).toFixed(2);
});
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 sum += array[i];
}
return ( sum / array.length ).toFixed(2);
});
推荐阅读
-
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)_javascript技巧
-
Javascript中3种实现继承的方法和代码实例_javascript技巧
-
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例_javascript技巧
-
javascript实现在某个元素上阻止鼠标右键事件的方法和实例_javascript技巧
-
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例_javascript技巧
-
js实现iPhone界面风格的单选框和复选框按钮实例_javascript技巧
-
js实现带有介绍的Select列表菜单实例_javascript技巧
-
基于javascript实现单选及多选的向右和向左移动实例_javascript技巧
-
js实现iPhone界面风格的单选框和复选框按钮实例_javascript技巧
-
javascript定义类和类的实现实例详解_javascript技巧