codecamp

Nedb 快速上手

由于NeDB可以看作是精简版的MongoDB,这里和MongoDB的使用做一下对比,以便可以更直观的感受NeDB的简便。

MongoDB

1、下载安装包;(http://www.mongodb.org/downloads

2、解压缩文件;

3、设置系统变量;

4、配置mongodb运行环境;

5、启动mongodb服务;

6、连接mongodb;

7、添加mongodb为windows服务;

8、启动服务;

net start MongoDB

9、安装mongoose模块(mongoose官网 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、停止或删除服务;

net stop MongoDB
 
sc delete MongoDB

NeDB

1、安装模块

npm install nedb --save

2、使用


// 加载模块
const nedb = require('nedb');
 
// 实例化连接对象(不带参数默认为内存数据库)
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) => {});

通过对比,嵌入式数据库在使用上的优势一目了然,无需任何数据库服务器,也不用安装、配置、启动一个数据库服务,而且NeDB的API抽取了MongoDB常用的一些接口,在用法上大同小异,性能也不错。如果项目使用Node实现,并且存储数据量不大,又熟悉MongoDB语法,那么,NeDB就值得一用。


Nedb 下载与安装
Nedb 术语以及坑
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }