zoukankan      html  css  js  c++  java
  • 【转】LokiJS:纯JavaScript实现的轻量级数据库

    原文转自:http://www.html5cn.org/article-7091-1.html

     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上。

    快速安装:

    [js]

    1. npm install lokijs
    2. or:
    3. bower install lokijs
    复制代码

    创建一个数据库:

    1. var db = new loki('loki.json') 
    2. Pass the filename where to persist data
    复制代码

    创建一个集合:

    1. 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})
    复制代码

    检索/获取文档:

    1. children.get(1); // returns Sleipnir
    2. children.find( {'name':'Sleipnir'} )
    3. children.find( { legs: { '$gt' : 2 } } )
    复制代码

    创建一个动态视图:

    1. var legs = children.addDynamicView('legs');
    2. legs.applyFind( { legs: { '$gt' : 2 } )
    3. legs.applySimpleSort('legs');
    4. 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

    来源地址:http://www.csdn.net/article/2014-11-05/2822493-LokiJS?reload=1
  • 相关阅读:
    常用的gem source
    The `master` repo requires CocoaPods 0.29.0
    day 26 对象的封装 抽象和接口
    day25 面向对象继承 多态
    day24 面向对象 命名空间组合 以及继承
    day23 模块和包的复习 初识面向对象
    day22 模块和包
    day21 其他常用模块和异常处理
    day20 模块
    day19正则表达式和re模块
  • 原文地址:https://www.cnblogs.com/ricky52529/p/4078777.html
Copyright © 2011-2022 走看看