您的位置:首页 > 数据库

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

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

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..”..

  波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐