参数、数据-node-tiny(一个超小的node.js数据库)-by小雨

查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法准确的,以免误导读者,也是给自己做个记载吧!

    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..”..
  波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”

posted @ 2013-04-17 13:35  坚固66  阅读(412)  评论(0编辑  收藏  举报