原文转自: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. .Net最佳实践3:使用性能计数器收集性能数据

    本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...

  2. 。【自学总结 1】------3ds Max 界面

    3ds Max 界面包含4部分(7区域) 4部分:菜单.控制工具.命令面板.窗口区 7区域: 1.标题栏:主要用于显示当前工作文件的名称,可以看到文件存储路径. 2.菜单栏:菜单中的命令如果带有省略号 ...

  3. Scrum Meeting 8-20151210

    任务安排 姓名 今日任务 明日任务 困难 董元财 服务器入口更新 服务器发布记录接口 无 胡亚坤 请假(编译攻坚) 聊天界面优化 无 刘猛 请假(编译攻坚) 开新的分支存放服务器端或者,创建的仓库记录 ...

  4. 使用 Jasmine 进行测试驱动的 JavaScript 开发

    Jasmine 为 JavaScript 提供了 TDD (测试驱动开发)的框架,对于前端软件开发提供了良好的质量保证,这里对 Jasmine 的配置和使用做一个说明. 目前,Jasmine 的最新版 ...

  5. C++基础知识之vector

    vector容器类型:vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的.vector的构造 函 ...

  6. iOS开发 弹簧效果

    #import "DDJelloView.h" #define SYS_DEVICE_WIDTH    ([[UIScreen mainScreen] bounds].size.w ...

  7. stm32cube--通用定时器--产生pwm波

    看了通用定时器的资料,发现内容挺多,挺难看懂,现在还是先掌握使用方法,以后再多看几遍吧. ① ② ③生成mdk工程后,在main.c的while(1)前面加上HAL_TIM_PWM_Start(&am ...

  8. 新建web工程Jdk怎么不是自己安装的, 是自带的

    需要在eclipse中配置默认的jdk环境的,不要用它默认的那个,这个不能用的http://blog.csdn.net/clj198606061111/article/details/11881575 ...

  9. thinkphp分页搜索条件带中文参数

    /** * 中文处理 * @param type $str * @return str * $author lxh */ function url2word($str){ $sub=strpos($s ...

  10. java并发编程-Executor框架

    Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion ...