由于NeDB可以看作是精簡版的MongoDB,這里和MongoDB的使用做一下對比,以便可以更直觀的感受NeDB的簡便。
1、下載安裝包;(http://www.mongodb.org/downloads)
2、解壓縮文件;
3、設(shè)置系統(tǒng)變量;
4、配置mongodb運行環(huán)境;
5、啟動mongodb服務(wù);
6、連接mongodb;
7、添加mongodb為windows服務(wù);
8、啟動服務(wù);
net start MongoDB
9、安裝mongoose模塊(mongoose官網(wǎng) http://mongoosejs.com/)
npm install mongoose --save
10、使用(以express為例)
var mongoose = require('mongoose');
exports.index = function(req, res){
var db = mongoose.createConnection('localhost', 'test');
var schema = mongoose.Schema({ name: 'string' });
var User = db.model('User', schema);
var user = new User({ name: 'tom' });
user.save(function(err) {
if(err) // ...
res.end();
});
User.find({'name':'tom'}, function(err, docs) {
res.render('index', { title: docs});
});
};
11、停止或刪除服務(wù);
net stop MongoDB
sc delete MongoDB
1、安裝模塊
npm install nedb --save
2、使用
// 加載模塊
const nedb = require('nedb');
// 實例化連接對象(不帶參數(shù)默認為內(nèi)存數(shù)據(jù)庫)
const db = new nedb({
filename: '/data/save.db',
autoload: true
});
// 插入單項
db.insert({
name: 'tom'
}, (err, ret) => {});
// 插入多項
db.insert(
[
{ name: 'tom' },
{ name: 'jerry' }
]
, (err, ret) => {});
// 查詢單項
db.findOne({
name: 'tom'
}, (err, ret) => {});
// 查詢多項
db.find({
name: {
$in: ['tom', 'jerry']
}
})
.sort({
_id: -1
})
.exec((err, ret) => {});
// 更新單項
db.update({
_id: '1'
}, {
$set: {
name: 'kitty'
}
}, (err, ret) => {});
// 更新多項
db.update({}, {
$set: {
name: 'kitty'
}
}, {
multi: true
}, (err, ret) => {});
// 刪除單項
db.remove({
_id: '1'
}, (err, ret) => {})
// 刪除多項
db.remove({
name: 'kitty'
}, {
multi: true
}, (err, ret) => {});
通過對比,嵌入式數(shù)據(jù)庫在使用上的優(yōu)勢一目了然,無需任何數(shù)據(jù)庫服務(wù)器,也不用安裝、配置、啟動一個數(shù)據(jù)庫服務(wù),而且NeDB的API抽取了MongoDB常用的一些接口,在用法上大同小異,性能也不錯。如果項目使用Node實現(xiàn),并且存儲數(shù)據(jù)量不大,又熟悉MongoDB語法,那么,NeDB就值得一用。
更多建議: