NeDB 是使用 Node.js 實現的一個 NoSQL 嵌入式數據庫操作模塊, 可以充當內存數據庫,也可以用來實現本地存儲,甚至可以在瀏覽器中使用。 查詢方式比較靈活,支持使用正則、比較運算符、邏輯運算符、索引以及 JSON 深度查詢等,適用於不需要大量數據處理的應用系統。
一、安裝
使用 npm 安裝 NeDB ,執行如下命令:
npm install nedb --save
二、創建NeDB數據庫
1、引入依賴
首先,使用 require 引入 nedb :
var NeDB = require('nedb')
2、數據庫初始化
接下來,我們需要初始化一個 NeDB 對象:
var db = new NeDB({ filename: './user.db', autoload: true, })
初始化數據庫時,我們傳入兩個參數:filename 和 autoload 。
第 2 行,filename 用於指定數據存儲的文件位置,在本示例中,filename 指定為同個目錄下的 user.db; 第 3 行,設置 autoload 為 true ,用於自動加載數據庫。
至此,我們得到了一個數據庫對象 db 。 接下來,對數據庫進行常規操作:插入、查詢、更新、刪除。
3、增刪改查操作、及配置詳情看官網
https://www.w3cschool.cn/nedbintro/
看這個,寫的還是蠻清楚的
三、遇到問題
1、數據庫nedb在update更新數據時,為什么總是會重新插入一條數據?
我在使用nedb update某一行數據時,始終會在文檔末尾插入一行新數據。我把nedb api用法看來看去,也沒找到自己代碼哪里有問題。后來仔細閱讀文檔其他部分。才發現了nedb 對【持久化】的解釋。
NeDB的持久性使用附加文本的方法,這意味着出於性能原因,所有更新和刪除實際上都會導致在數據文件末尾添加行。每次在應用程序中加載每個數據庫時,數據庫都會自動壓縮(即以每個文檔一行的格式放回)。
什么意思呢?
就是每次你執行update 和 remove操作時,nedb都會在文件末尾新增加一行相應數據,一開始我想當然的認為這樣總是會產生至少2條以上的重復數據。
事實不是:在你再去查詢某條數據時,nedb會自動壓縮數據,保證你查詢出來的數據沒有重復的。
我馬上代碼試了下,果然,之前更新數據時,在文檔末尾新增的數據,都不見了,相關屬性值都被合並到之前已有的對於某條記錄里去了。