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

  • 相关阅读:
    【转】PLSQL developer 连接不上64位Oracle 的解决方法
    Cadence 错误合集
    二十三、原理图和PCB交互式布局
    二十二、导入DXF文件
    二十一、打开和关闭飞线
    电源设计基础(罗伯特.A.曼马诺) TI电源书籍
    ORA-01033: ORACLE initialization or shutdown in progress 实用的处理方法
    转载“启动关闭Oracle数据库的多种方法”--来自百度#Oracle
    vue+django+mysql前后端分离的课程管理系统
    webshell扫描器
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3026076.html
Copyright © 2020-2023  润新知