作为程序员,偶尔会冒出些新奇的想法,又不希望实现起来太麻烦,比如说做一个单机版的客户管理系统。
这时候我们可能会希望有个这样的存储工具:
如果我们需要的是关系型数据库,可以选择 SQLite,如果希望用菲关系型数据库,我推荐尝试 DiskDB。
DiskDB 是一个轻量级的 JSON 文件数据库,它的 API 模仿了 MongoDB,非常适合于 Node 环境开发。
Github: https://github.com/arvindr21/diskDB
使用手册:https://github.com/arvindr21/diskDB/README.md
应用实例:https://github.com/arvindr21/diskDB/tree/master/examples
$ npm install diskdb
var db = require('diskdb');
db = db.connect('数据库存储目录', ['访问的数据集合']);
// 之后像 Mongodb 一样操作它
注:每一个数据集合是一个独立的 JSON 文件。
除了在连接时加载,还可以在连接后再次加载。
var db = require('diskdb');
// 第一种加载方式
db = db.connect('/examples/db');
db.loadCollections(['articles']);
// 第二种加载方式
db.connect('/examples/db');
db.loadCollections(['articles']);
// 第三种加载方式
db.connect('/examples/db')
.loadCollections(['articles']);
// 第四种加载方式
db.connect('/examples/db', ['articles']);
db.collectionName.save(object);
例如:
var db = require('diskdb');
db.connect('db', ['articles']);
var article = {
title : "diskDB rocks",
published : "today",
rating : "5 stars"
}
db.articles.save(article);
// 或者
db.articles.save([article]);
保存后的文件内容如下:
[
{
"title": "diskDB rocks",
"published": "today",
"rating": "5 stars",
"_id": "0f6047c6c69149f0be0c8f5943be91be"
}
]
db.collectionName.find()
例如:
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
db.articles.find();
/*
返回:
[{
title: 'diskDB rocks',
published: 'today',
rating: '5 stars',
_id: '0f6047c6c69149f0be0c8f5943be91be'
}]
*/
db.collectionName.findOne(query)
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
db.articles.findOne({_id: '0f6047c6c69149f0be0c8f5943be91be'});
db.collectionName.update(query, data, options)
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
var query = {
title : 'diskDB rocks'
};
var dataToBeUpdate = {
title : 'diskDB rocks again!',
};
var options = {
multi: false, // true 时更新所有数据,否则更新第一条,默认 false
upsert: false // 当记录不存在时,插入新数据。默认 false
};
var updated = db.articles.update(query, dataToBeUpdate, options);
console.log(updated); // { updated: 1, inserted: 0 }
db.collectionName.remove(query, multi)
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
const multi = true;
db.articles.remove({rating : "5 stars"}, multi); // multi 为 true 时删除所有数据,否则删除第一条。
// 不写条件时删除所有数据
db.articles.remove();
db.collectionName.count()
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
db.articles.count(); // 返回集合数量
至此,我们常用的功能基本都满足了,下次我们介绍如何将 Node 应用打包成独立的可执行文件。
【技术创作101训练营】
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。