JavaScript实现的内存数据库LokiJS介绍和入门实例

  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);

  });