前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DiskDB,一个不用网的数据库

DiskDB,一个不用网的数据库

原创
作者头像
tonglei0429
修改2020-09-23 10:20:49
6440
修改2020-09-23 10:20:49
举报

作为程序员,偶尔会冒出些新奇的想法,又不希望实现起来太麻烦,比如说做一个单机版的客户管理系统。

这时候我们可能会希望有个这样的存储工具:

  1. 不需要网络
  2. 接口成熟
  3. 可嵌入式

如果我们需要的是关系型数据库,可以选择 SQLite,如果希望用菲关系型数据库,我推荐尝试 DiskDB。

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

DiskDB 用法介绍

DiskDB 的安装

代码语言:javascript
复制
$ npm install diskdb
代码语言:javascript
复制
var db = require('diskdb');
db = db.connect('数据库存储目录', ['访问的数据集合']);
// 之后像 Mongodb 一样操作它

注:每一个数据集合是一个独立的 JSON 文件。

数据集合的加载

除了在连接时加载,还可以在连接后再次加载。

代码语言:javascript
复制
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']);

数据集合的保存

代码语言:javascript
复制
db.collectionName.save(object);

例如:

代码语言:javascript
复制
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]);

保存后的文件内容如下:

代码语言:javascript
复制
[
    {
        "title": "diskDB rocks",
        "published": "today",
        "rating": "5 stars",
        "_id": "0f6047c6c69149f0be0c8f5943be91be"
    }
]

读取数据

db.collectionName.find()

例如:

代码语言:javascript
复制
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)

代码语言:javascript
复制
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
db.articles.findOne({_id: '0f6047c6c69149f0be0c8f5943be91be'});

更新数据

db.collectionName.update(query, data, options)

代码语言:javascript
复制
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)

代码语言:javascript
复制
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()

代码语言:javascript
复制
var db = require('diskdb');
db.connect('/examples/db', ['articles']);
db.articles.count(); // 返回集合数量

至此,我们常用的功能基本都满足了,下次我们介绍如何将 Node 应用打包成独立的可执行文件。

【技术创作101训练营】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DiskDB 简介
  • DiskDB 用法介绍
    • DiskDB 的安装
      • 数据集合的加载
        • 数据集合的保存
          • 读取数据
            • 读取第一条数据
              • 更新数据
                • 删除数据
                  • 统计
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档