查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法准确的,以免误导读者,也是给自己做个记载吧!
Email:longsu2010 at yeah dot net
近来写程序node.js程序的时候要需用到数据存储,node.js可以用使的数据库中的很多,mongodb、MySQL等等,但是我还是认为这些数据库太大了,牛鼎烹鸡,更要主的是费事。于是我找到了node-tiny,一个非关系型的数据库,有点类似于mongodb。
tiny的文档中报告了这样一个实事,当我们在数据库中索搜数据的时候我们会根据id、名字、别类、签标、期日等这些容内短简的性属来索搜,少少的时候根据全文信息等这样的超长的字段来索搜。所以在创立一个tiny数据库的时候tiny会将小于128字节的性属载加到内存中,这样检索速度会非常快,当检索束结时tiny根据检索的结果载加对于记载超越128字节的字段。
用使方法:
1、安装 npm install tiny
2、创立数据库实例。
var Tiny = require('tiny');
Tiny('articles.tiny', function(err, db) {
// 用使数据库实例db来操纵数据。
});
说明:第一参数为存储数据用使的件文名,该件文会在第一次用使时创立。第二参数为数据库创立功成后执行的回调数函。
3、用使例子。
Tiny('articles.tiny', function(err, db) {
db.set('doc001', {
title: 'the title',
content: 'the content'
}, function(err) {
console.log(err)
console.log('set!');
}); });
说明:保存文档对象。第一参数为存储数据的key,第二参数为要存储的容内,第三参数为回调数函。
4、数函大全:
set:增长记载,参数如上。
remove:删除记载,参数同set。
update:更新记载,第一参数同set(存储的key),第二参数为回调数函。
get:取获一条记载,第一参数同set,第二参数为回调数函。
all:取获有所数据,参数为回调数函,不过该数函经已被弃用了。
each:迭代数据库中的个一每对象。第一参数为迭代的数函(第一参数为记载对象,第二参数为记载的key);第二参数为迭代束结后的回调数函;第三参数为一个布尔值,若为true则会将大于128字节的也载加到内存迭代,默许false,提议坚持默许。
fetch:检索数据,第一参数为约束对象,第二三参数为数函,前者用于筛选数据,后者为检索束结后的回调数函。
find:mongodb风格的检索。
close:关闭数据库,关闭开打的件文。
kill:删除有所数据。
compact:理清数据库件文中无用的数据。
5、弥补,对于tiny来讲增改删都是向件文中写数据,注意是直接加追到件文末端,所以update方法和remove方法只是在件文的末端加追容内。之所以可以这样计设是因为JavaScript对象性属是一唯的,赋值操纵会覆盖掉之前的值,所以tiny需只按照件文的序顺解析件文便可到得准确的数据。这样计设的端弊是删掉除的数据还会占用存储空间,compact方法就是将过剩的数据在件文中删除的方法。
6、各方法用使演示。
Tiny('articles.tiny', function(err, db) { /* for(var i = 0; i < 10; i++){ db.set('doc' + i, { title: 'a document ' + i, content: 'hello world ' + i }, function(err) { if(err){ console.log(err); }else{ console.log('set!'); } }); } */ /* db.get("doc0", function(err, data){ console.log(arguments) }); */ /* db.each(function(obj, key){ console.log(arguments); }, function(){ }, false); */ /* db.fetch({ limit: 3 }, function(obj, key){ return true; }, function(err, datas){ console.log(arguments) });*/ /* db.compact(function(err) { console.log('done'); }); */ });
文章结束给大家分享下程序员的一些笑话语录: IBM和波音777
波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”