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
  • 相关阅读:
    git基础使用小记
    MYSQL 安装&配置
    NGINX 安装&配置
    PHP编译安装
    linux基本命令操作
    css清除浮动的8种方法以及优缺点
    简单概括下浏览器事件模型,如何获得资源dom节点
    HTML5新增的表单元素有哪些?
    css 引入的方式有哪些, link和@import的区别是什么
    git与svn的区别
  • 原文地址:https://www.cnblogs.com/ricky52529/p/4078777.html
Copyright © 2011-2022 走看看