原文转自: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

【转】LokiJS:纯JavaScript实现的轻量级数据库的更多相关文章

  1. 纯javaScript、jQuery实现个性化图片轮播

    纯javaScript实现个性化图片轮播 轮播原理说明<如上图所示>: 1. 画布部分(可视区域)属性说明:overflow:hidden使得超出画布部分隐藏或说不可见.position: ...

  2. JavaScript 一种轻量级的编程语言

     JavaScript 一种轻量级的编程语言 作为一名计算机应用专业的学生,大一上学期开始接触了网页设计和制作,刚开始时感觉做网页很不错,简单地写几行代码就能做出效果来,当时感觉很兴奋,渐渐的喜欢上它 ...

  3. ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表

    ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...

  4. LocalDB:微软的新生代轻量级数据库

    什么是LocalDB 随着SQL Server 2012的发布,LocalDB跃入我们的视线,它可以被看做是SQL Server Express的轻量级版本.LocalDB专门为开发人员创建,它非常易 ...

  5. javascript日历控件——纯javascript版

    平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. < ...

  6. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 10(排行榜界面&界面管理)

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  7. 无需部署的轻量级数据库—SQLLite,使用Demo

    当有程序需要保存轻量数据,而又烦躁序列化到本地的不便,轻量级数据库—SQLLite是一个很好的选择,只需引用System.Data.SQLite.DLL,无需部署数据库,便可像拥有数据库一样保存数据, ...

  8. 纯Javascript实现Windows 8 Metro风格实现

    Metro风格设计主要特点 1.Windows 8 Metro风格设计,实现网站或系统功能的导航 2.纯Javascript实现 3.支持所有IE.360.Chrome等常用浏览器 4.支持圆角.阴影 ...

  9. 纯javascript联动的例子

    有人想要学习下纯javascript联动的一些技巧,我这里就以日期的联动为例,附上一些代码至于复杂的省市区联动,不建议用纯javascript的,而是用ajax的方式,该不在此讨论范围内,想要了解aj ...

随机推荐

  1. MAC地址泛洪攻击测试

    测试环境:kali系统(2个kali分别作攻击人和目标用户) win7系统(主机) 1.步配置FTP设置用户名密码 2.在攻击kali端测试网络的连通性 3.测试tpf是否正常 开始泛洪 4.开始抓包 ...

  2. JavaGUI——设置框架背景颜色和按钮颜色

    import java.awt.Color; import javax.swing.*; public class MyDraw { public static void main(String[] ...

  3. [poj3321]Apple Tree(dfs序+树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 26762   Accepted: 7947 Descr ...

  4. vi/vim基本使用方法

    vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...

  5. Android Studio常见问题 -- uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library

    问题描述 * What went wrong:Execution failed for task ':app:processDebugManifest'.> Manifest merger fa ...

  6. 对数组进行malloc动态分配的一些总结

    笔者在处理程序奔溃问题的时候,遇到栈溢出的情况,栈溢出最常见的情况是:迭代调用和数组过大.数组占用占空间,所以改为了malloc方式放在堆上.想想,就想整理一下关于对多维数组的动态分配问题. 一,堆和 ...

  7. 转:不应该不知道C++的常用库

    不应该不知道C++的常用库 非常惭愧,我过去也仅仅了解boost.STLport这样的库,以及一些GUI库,但是居然有如此众多的C++库,其实令我惊讶.当然,这个问题应该辩证的看,对于拿来主义确实可以 ...

  8. (转)PowerDesigner提示Existence of index、key、reference错误

    建立一个表后,为何检测出现Existence of index的警告    A table should contain at least one column, one index, one key ...

  9. Linux 忘记密码解决方法

    很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可. 步骤如下: 重启linux系统 3  ...

  10. opencv中的.at方法

    opencv中的.at方法是用来获取图像像素值得函数: interpolation:差值 histogram:直方图