Node-tiny(超小さなnode.jsデータベース)
2987 ワード
最近の書き込み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を使用してデータを操作します.});説明:最初のパラメータは、データを格納するために使用されるファイル名です.このファイルは、最初の使用時に作成されます.第2のパラメータは、データベースの作成に成功した後に実行されるコールバック関数です.3、使用例.
説明:ドキュメントオブジェクトを保存します.第1のパラメータはデータを格納するkeyであり、第2のパラメータは格納する内容であり、第3のパラメータはコールバック関数である.4、関数大全:
set:レコードを追加し、パラメータは上記の通りです.
remove:レコードを削除し、パラメータはsetと同じです.
update:レコードを更新し、第1パラメータはset(格納key)と同じで、第2パラメータはコールバック関数です.
get:レコードを取得します.第1パラメータはsetと同じで、第2パラメータはコールバック関数です.
all:すべてのデータを取得します.パラメータはコールバック関数ですが、この関数は破棄されました.
each:データベース内の各オブジェクトを反復します.第1パラメータは反復関数(第1パラメータは記録対象、第2パラメータは記録key)である.第2のパラメータは反復終了後のコールバック関数である.第3のパラメータはブール値であり、trueの場合は128バイト以上もメモリ反復にロードされ、デフォルトfalseではデフォルトを維持することを推奨します.
fetch:データを取得し、第1パラメータはコンストレイントオブジェクト、第2、3パラメータは関数であり、前者はデータのフィルタリングに用いられ、後者は検索終了後のコールバック関数である.
find:mongodbスタイルの検索.
close:データベースを閉じ、開いているファイルを閉じます.
kill:すべてのデータを削除します.
compact:データベースファイル内の不要なデータをクリーンアップします.
5、補足、tinyにとって削除変更はすべてファイルにデータを書くので、ファイルのデフォルトに直接追加することに注意して、updateメソッドとremoveメソッドはファイルの末尾に内容を追加するだけです.このように設計できるのは、JavaScriptオブジェクトのプロパティが一意で、付与操作が以前の値を上書きするため、tinyはファイルの順序でファイルを解析するだけで正しいデータを得ることができるからです.このような設計の弊害は,削除したデータが記憶領域を占有することであり,compactメソッドは余分なデータをファイルから削除する方法である.
6、各方法はプレゼンテーションを使用する.
1、npm install tinyをインストールする
2、データベースインスタンスを作成します.var Tiny = require('tiny'); Tiny('articles.tiny',function(err,db){//データベースインスタンスdbを使用してデータを操作します.});説明:最初のパラメータは、データを格納するために使用されるファイル名です.このファイルは、最初の使用時に作成されます.第2のパラメータは、データベースの作成に成功した後に実行されるコールバック関数です.3、使用例.
Tiny('articles.tiny', function(err, db) {
db.set('doc001', {
title: 'the title',
content: 'the content'
}, function(err) {
console.log(err)
console.log('set!');
});
});
説明:ドキュメントオブジェクトを保存します.第1のパラメータはデータを格納するkeyであり、第2のパラメータは格納する内容であり、第3のパラメータはコールバック関数である.4、関数大全:
set:レコードを追加し、パラメータは上記の通りです.
remove:レコードを削除し、パラメータはsetと同じです.
update:レコードを更新し、第1パラメータはset(格納key)と同じで、第2パラメータはコールバック関数です.
get:レコードを取得します.第1パラメータはsetと同じで、第2パラメータはコールバック関数です.
all:すべてのデータを取得します.パラメータはコールバック関数ですが、この関数は破棄されました.
each:データベース内の各オブジェクトを反復します.第1パラメータは反復関数(第1パラメータは記録対象、第2パラメータは記録key)である.第2のパラメータは反復終了後のコールバック関数である.第3のパラメータはブール値であり、trueの場合は128バイト以上もメモリ反復にロードされ、デフォルトfalseではデフォルトを維持することを推奨します.
fetch:データを取得し、第1パラメータはコンストレイントオブジェクト、第2、3パラメータは関数であり、前者はデータのフィルタリングに用いられ、後者は検索終了後のコールバック関数である.
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');
});
*/
});