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

 更新时间:2014年11月17日 09:21:09   投稿:junjie  
这篇文章主要介绍了JavaScript实现的内存数据库LokiJS介绍和入门实例,LokiJS是一个内存数据库,将性能考虑放在第一位,使用JavaScript编写,需要的朋友可以参考下

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

相关文章

  • JavaScript实现简单Tip提示框效果

    JavaScript实现简单Tip提示框效果

    这篇文章主要介绍了JavaScript实现简单Tip提示框效果,涉及JavaScript响应鼠标事件针对页面元素动态操作的相关技巧,需要的朋友可以参考下
    2016-04-04
  • Bootstrap实现带暂停功能的轮播组件(推荐)

    Bootstrap实现带暂停功能的轮播组件(推荐)

    最近小编在项目中用到了一款带轮播组件,功能非常齐全,可以设置各种标题样式、动画效果、轮播时间、开始暂停等功能,下面小编通过本文给大家详细介绍下实现过程,需要的朋友参考下吧
    2016-11-11
  • JavaScript中判断原生函数检查function是否是原生代码

    JavaScript中判断原生函数检查function是否是原生代码

    检查某个function是否是原生代码,要检测这一点,最简单的办法当然是判断函数的 toString 方法返回的值
    2014-09-09
  • javascript中setTimeout使用指南

    javascript中setTimeout使用指南

    本文给大家通过3个方法向大家展示了javascript中的setTimeout的使用,非常的简单,有需要的小伙伴可以参考下。
    2015-07-07
  • 坐标轴刻度取值算法之源于echarts的y轴刻度计算需求

    坐标轴刻度取值算法之源于echarts的y轴刻度计算需求

    坐标轴刻度作为直角坐标系中重要的组成部分,我们需要学会合理的设置坐标轴的刻度,下面这篇文章主要给大家介绍了关于坐标轴刻度取值算法之源于echarts的y轴刻度计算需求的相关资料,需要的朋友可以参考下
    2022-06-06
  • JavaScript与ActionScript3两者的同性与差异性

    JavaScript与ActionScript3两者的同性与差异性

    接触JavaScript和ActionScript3也有近5年的时间了,它们都是应用比较广泛的脚本语言.接下来通过本文给大家介绍JavaScript与ActionScript3两者的同性与差异性,感兴趣的朋友一起学习吧
    2016-09-09
  • js 颜色选择插件

    js 颜色选择插件

    本文主要介绍了js 颜色选择插件。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • JS生成随机打乱数组的方法示例

    JS生成随机打乱数组的方法示例

    这篇文章主要介绍了JS生成随机打乱数组的方法,涉及javascript数组随机排序的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • 微信小程序实现购物车小功能

    微信小程序实现购物车小功能

    这篇文章主要为大家详细介绍了微信小程序实现购物车小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • JavaScript常用本地对象小结

    JavaScript常用本地对象小结

    这篇文章主要介绍了JavaScript常用本地对象小结的相关资料,需要的朋友可以参考下
    2016-03-03

最新评论