MongoDB

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。MongoDB是一个介于关系型数据库和非关系型数据库之间的产品。

安装

首先需要下载mongodb,下载地址

注:建议下载3.4版本,因为最新的3.6版本在安装过程中会出现几十分钟或是几个小时等待的情况,所以建议使用3.4版本安装。

在安装的过程中选择自定义选项(Custom),然后将其安装在C盘(首先在C盘新建一个mongodb的文件夹)。安装完成之后,需要在环境变量中进行设置路径,这样,mongodb算是安装完成了。

建立数据库

  • 如果要在mongodb中建立数据库名,那么在c://mongodb/bin目录下执行mongod --dbpath ../blog/,这样,在mongodb文件夹下就会出现一个blog的文件夹。
  • 如果要和nodejs建立连接(这里以express为例),那么需要在express中进行设置。

    // 首先引入mongodb
    npm install mongodb -S
    // 然后设置settings.js和db.js
    // settings.js 
    // cookieSecret用于数据库加密, db为数据库名,host为数据库地址,port为端口号,默认端口号为27017
    module.exports = {
      cookieSecret: 'myBlog',
      db: 'blog',
      host: 'localhost',
      port: 27017
    };
    // db.js
    var settings = require('../settings');
    var Db = require('mongodb').Db;
    var Connection = require('mongodb').Connection;
    var Server = require('mongodb').Server;
    module.exports = new Db(settings.db, new Server(settings.host, settings.port), {safe: true});
    
  • 然后在app.js(express)中如果需要将信息保存在session中,那么需要引入express-sessionconnect-mongo这两个包

    npm install express-session connect-mongo -S
    var session = require('express-session');
    var MongoStore = require('connect-mongo')(session);
    
    app.use(session({
      secret: settings.cokkieSecret,
      key: settings.db,
      cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},
      store: new MongoStore({
        url: 'mongodb://localhost:27017'
      }),
    }));
    
    // 没有像下面这样写是因为下面这样写会报错
    store: new MongoStore({
      host: settings.host,
      port: settings.port,
      db: settings.db
    })
    
  • 最后就是在路由中进行各种骚操作了

    // 首先是打开数据库
    mongodb.open(function(err, db) {
      if(err) {
        return callback(err); // 如果失败,则返回err
      }
      // 打开users集合
      db.collection('users', function(err, collection) {
        // 然后就是进行插入和查找
        collection.insert(user, function(err, user) {
          ...
        });
        collection.find(user.name, function(err, user) {
          ...
        })
      })
    })