LokiJS:纯JavaScript实现的轻量级数据库
程序员文章站
2022-05-19 08:50:10
...
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上。
快速安装:
创建一个数据库:
创建一个集合:
插入一个文档:
检索/获取文档:
创建一个动态视图:
MapReduce:
LokiJS相关资料:
官网:http://lokijs.org/
托管地址:https://github.com/techfort/LokiJS
LokiJS支持字段索引来实现更快的文件访问,性能也相当好(近50万OPS/ s)。其内置的DynamicView类也能用于数据子集的索引,达到更快的性能。 LokiJS支持集合,很像MongoDB,并将数据以JSON格式保存到硬盘上(根据会话来恢复状态),所以你的数据是可移植的。
采用LokiJS的最理想情景:
移动应用程序——尤其是基于HTML5的(例如:Cordova,Phonegap等等)
基于Node.js的小——中型应用程序的数据存储
采用Node-Webkit的桌面应用程序
LokiJS目前还处在alpha阶段。源码托管在Github上。
快速安装:
npm install lokijs or: bower install lokijs
创建一个数据库:
var db = new loki('loki.json') Pass the filename where to persist data
创建一个集合:
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); });
LokiJS相关资料:
官网:http://lokijs.org/
托管地址:https://github.com/techfort/LokiJS
推荐阅读
-
基于Python的SQL Server数据库实现对象同步轻量级
-
纯javascript的ajax实现php异步提交表单的简单实例
-
纯javascript实现选择框的全选与反选功能
-
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
-
纯javascript实现选择框的全选与反选
-
纯编码实现Access数据库的建立或压缩
-
基于Python的SQL Server数据库对象同步轻量级实现
-
纯编码如何实现Access数据库的建立或压缩(4)
-
在 Laravel 中使用 Laravel Searchy 扩展包实现基于数据库的轻量级搜索功能
-
纯html、css、javascript实现楼层跳跃式的页面布局