
NeDB快速入门3步搭建持久化数据存储从npm install到第一条insert完整教程【免费下载链接】nedbThe JavaScript Database, for Node.js, nw.js, electron and the browser项目地址: https://gitcode.com/gh_mirrors/ne/nedbNeDB 是一款 100% 纯 JavaScript 编写的嵌入式持久化数据库适用于 Node.js、Electron、nw.js 和浏览器环境零二进制依赖、无需安装任何数据库服务。只需一条npm install3 行代码即可完成你的第一条insert本文带你从零搭建一个可靠的本地数据存储。 什么是 NeDB为什么值得推荐对于不想部署 MongoDB 这类重型数据库、只想在应用里开箱即用存储数据的新手来说NeDB 是非常省心的选择纯 JavaScript 实现没有二进制依赖跨平台运行服务端和浏览器端使用同一套 API嵌入式设计数据直接落盘成普通文本文件一个Datastore相当于 MongoDB 中的一个 collectionAPI 是 MongoDB 的子集熟悉 MongoDB 的开发者可以无缝上手find、insert、update、remove一应俱全速度够用官方基准测试1 万条文档、开启索引显示insert 约 10,680 ops/sfind 约 43,290 ops/s测试脚本可参考 benchmarks/ 目录核心实现都在 lib/ 目录数据库入口逻辑在 lib/datastore.js落盘逻辑在 lib/persistence.js查询游标在 lib/cursor.js。 第一步用 npm install 安装 NeDB在任何 Node.js 项目根目录执行npm install nedb --save包名就是nedb安装后会自动写入package.json。入口文件 index.js 只有一行——直接导出Datastore类这也是你require(nedb)后拿到的东西。️ 第二步创建持久化 NeDB 数据库var Datastore require(nedb); var db new Datastore({ filename: db/notes.db, autoload: true });两个关键选项需要理解选项说明filename数据文件路径。不传则变成纯内存数据库重启即丢失autoload设为true时自动加载磁盘数据可以立即执行命令⚠️新手第一大坑如果没设置autoload你必须手动调用db.loadDatabase(callback)否则所有insert/find操作都会被缓冲、一条都不会执行。忘记这一步是 NeDB 新手最常见的数据库没数据原因。参数校验逻辑可参考 lib/datastore.js 中的Datastore构造函数。 第三步用 insert 写入第一条数据db.insert({ title: 买牛奶, done: false }, function (err, newDoc) { console.log(newDoc); // 已自动生成 16 位 _id 的完整文档 });几个要点文档不含_id时NeDB 会自动生成一个 16 位字母数字 ID_id一旦生成就不可修改支持字符串、数字、布尔、日期、数组和嵌套对象undefined字段会被直接忽略、不保存支持批量插入传数组且是原子操作——违反唯一约束时整批回滚 加餐find / update / remove 一次看懂写入之后查询与修改同样是极简 API// 查询不传回调则返回 Cursor可链式排序分页 db.find({ done: false }).sort({ title: 1 }).limit(10).exec(function (err, docs) {}); db.findOne({ _id: xxxx }, function (err, doc) {}); // 更新$set 只改指定字段multi: true 批量更新 db.update({ title: 买牛奶 }, { $set: { done: true } }, {}, function (err, n) {}); // 删除remove 默认只删一条批量需 multi: true db.remove({ done: true }, { multi: true }, function (err, n) {});查询语法与 MongoDB 一致支持$lt、$in、$regex、$or等操作符也可以用点号语法如humans.genders查询嵌套字段官方完整示例在 test/db.test.js 里可以找到。 持久化机制NeDB 为什么不容易丢数据NeDB 采用append-only只追加格式所有更新和删除都以新行的形式追加到数据文件末尾每次应用启动加载数据库时自动执行一次压实compaction也可以手动调用db.persistence.compactDatafile()。数据写入后由操作系统负责刷盘约 30 秒一次即使进程崩溃也最多丢失最近约 30 秒的数据不会全盘丢失想给字段加唯一索引加速查询一行搞定db.ensureIndex({ fieldName: email, unique: true })索引会随数据文件持久化见 lib/indexes.js⚠️ 新手避坑清单忘记loadDatabase非autoload模式下所有命令被挂起务必在回调之后再操作_id不可修改想改主键只能删了重建字段名限制不能以$开头不能包含.数据文件名不能以~结尾~是 NeDB 崩溃安全写入使用的临时文件后缀浏览器端注意浏览器版构建产物在 browser-version/ 目录会自动选择 IndexedDB / WebSQL / localStorage 存储容量可达数百 MB✅ 小结从npm install nedb到第一条insert落盘NeDB 只需要三步安装 → 创建带filename和autoload的 Datastore → insert。它以极小的代价换来了文件级持久化存储能力非常适合桌面应用、小型服务端、Electron 项目和原型验证而由于 API 与 MongoDB 高度相似将来数据量增长时迁移到 MongoDB 也几乎零成本。【免费下载链接】nedbThe JavaScript Database, for Node.js, nw.js, electron and the browser项目地址: https://gitcode.com/gh_mirrors/ne/nedb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考