LokiJS:纯JavaScript实现的轻量级数据库

LokiJS一个轻量级的面向文档的数据库,由JavaScript实现,性能高于一切。目的是把JavaScript对象作为文档,然后再进行存储,并且以同样的方式来检索数据。 LokiJS可以运行于Node.js和所有支持JavaScript的浏览器、移动应用程序上。


LokiJS支持字段索引来实现更快的文件访问,性能也相当好(近50万OPS/ s)。其内置的DynamicView类也能用于数据子集的索引,达到更快的性能。 LokiJS支持集合,很像MongoDB,并将数据以JSON格式保存到硬盘上(根据会话来恢复状态),所以你的数据是可移植的。


采用LokiJS的理想情景:


  • 移动应用程序——尤其是基于HTML5的(例如:Cordova,Phonegap等等)

  • 基于Node.js的小——中型应用程序的数据存储

  • 采用Node-Webkit的桌面应用程序


LokiJS目前还处在alpha阶段。源码托管在Github上。


快速安装:


  1. npm install lokijs

  2. or:

  3. bower install lokijs


创建一个数据库:


var db = new loki('loki.json') 
Pass the filename where to persist data


创建一个集合:


var children = db.addCollection('children')


插入一个文档:


  1. children.insert({name:'Sleipnir', legs: 8})

  2. children.insert({name:'Jormungandr', legs: 0})

  3. 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:


  1. children.mapReduce(

  2. function( obj ){ return obj.legs; } ,

  3. function( array ) {

  4. var sum = 0;

  5. for (var i=0; i < array.length; i++ ){

  6. sum += array[i];

  7. }

  8. return ( sum / array.length ).toFixed(2);

  9. });


LokiJS相关资料:


官网:http://lokijs.org/


托管地址:https://github.com/techfort/LokiJS


本文为CSDN编译整理



相关文章