NeDB是使用Node.js实现的一个NoSQL嵌入式数据库操作模块,可以充当内存数据库,也可以用来实现本地存储,甚至可以在浏览器中使用。查询方式比较灵活,支持使用正则、比较运算符、逻辑运算符、索引以及JSON深度查询等。
NeDB嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销,使用精简代码编写,速度更快。其API是MongoDB的一个子集,可以通过这些接口轻松管理应用程序数据,而不依靠原始的文档文件。
具有简单、轻量、速度快等特点,由于嵌入式数据库存储总数据量最好要控制在1GB以内,所以适合在不需要大量数据处理的应用系统中使用。
cnpm install nedb --save
// datastore.js import Datastore from 'nedb'; import path from 'path'; import { remote } from 'electron'; export default new Datastore({ autoload: true, // 指定数据库文件路径 filename: path.join(remote.app.getPath('userData'), '/data.db') })
// main.js // 引入DB数据库文件 import db from './datastore.js'; // 绑定数据库到vue上 Vue.prototype.$db = db;
// 查找数据 this.$db.find({"age":30}, (err, docs)=>{ if(err){ console.log(err); return; }; console.log(docs); }); // 插入数据 this.$db.insert({"name":20,"age":100},function(err,doc){ if(err){ console.log(err); return; } console.log(doc); }) // 更新数据 this.$db.update({"_id":"cHODtJOIft1YcOMN"},{$set:{"name":"赵六"}},function(err,data){ if(err){ console.log(err); return; } console.log(data); }) // 移除数据 this.$db.remove({"_id":"6nAYPLImXRs7mB0P"},{},function(err,data){ if(err){ console.log(err); return; } console.log(data); })
参考:
https://www.w3cschool.cn/nedbintro/nedbintro-akpf27mi.html
https://simulatedgreg.gitbooks.io/electron-vue/content/cn/savingreading-local-files.html