mongodb

关于mongodb:是一种非关系系列数据库

mysql:是关系型数据库

第一部分:安装mongodb

1、下载安装mongodb

2、配置数据目录

  • 创建数据目录:mkdir c:\data
  • 自定义数据目录:mongod --dbpath "c:\data"

3.添加/删除Windows服务里面

添加服务




  • mongod.exe
  • 设置数据存放路径: --dbpath "C:\mongodb\data\db"
  • 设置日志存放路径: --logpath "C:\mongodb\data\log\log.txt"
  • 设置日志的记录方式:--logappend
  • 设置数据库的端口号:--port 27000
  • 设置服务的名称:--serviceName "Name"
  • 设置服务的显示名称:--serviceDisplayName "DisplayName"
  • 添加到windows服务里:--install
  • 安装mongodb服务(使用管理员权限打开命令)
  • 32位系统:mongod --dbpath="C:\data\db" --logpath="C:\data\log\log.txt" --serviceName MongoDB --journal --storageEngine=mmapv1 --install
  • 64位系统:mongod --dbpath="C:\data\db" --logpath="C:\data\log\log.txt" --serviceName MongoDB --install

移除服务

  • mongod.exe --remove --serviceName "Name"

启动/停止服务

  • net start ServiceName
  • net stop ServicceName

4、MongoDB基本命令

mongo --port 27017 连接数据库

显示全部的数据库:show dbs

进入数据库(创建数据库) use dbname

  • use 数据库名 如果数据库存在则是进入到该数据库
  • use 数据库名 如果数据库不存在则是创建该数据库
  • 如果创建出来的数据库是一个空的数据库,则本质上是和没有创建一样的

查看表 show tables

创建数据库 use newdb

  • use 数据库名 (1)、若存在,则进入数据库
  • (2)、若不存在,则创建该数据库
  • 如果创建出来的数据库是一个空的,则本质上和没有创建是一样的

5、增删改查

tableName表名

(1)、db.tableName.insert(obj) 添加数据

(2)、db.tableName.find(obj) 找到所有

db.tableName.find().pretty()

(3)、db.tableName.findOne(obj) 找到所有只改变第一个

(4)、db.tableName.remove(obj,isFirst)

  • 参数1:删除条件
  • 参数2:是否只删除匹配到的第一条数据

db.createCollection("表名")创建表

(5)、db.tableName.drop() 删除表

(6)、db.dropDatabase() 删除库

(7)、db.tableName.update({},{},false,true)

  • 参数1:条件,
  • 参数2:替换,如果{$set:{y:100,x:10}}
  • 参数3:不存在是否创建:true:是,false,不创建
  • 参数4:是否更新全部符合条件数据:true:是,false:只更新第一条
  • 更新单条记录: db.tableName.update(condition, newObj, false, false)
  • 更新多条记录: db.tableName.update(condition, {$set:newObj}, false, true)

6、mongodb中间件

(1)、引入:mongoose

(2)、连接数据库:mongoose.connect('mongodb://127.0.0.1/mydb',function(err){})

(3)、Schema = mongoose.Schema; //一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

(4)、User = new Schema(obj)

(5)、方法:

  • create(model,function(err){}) //由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

  • find(model,fields,sort,function(err,docs){})

  • findOne(model,fields,function(err,docs){})

  • findById(model,fields,function(err,docs){})

  • update(model,newfields,options,function(err){})

  • options:

  • multi:多条记录更改

  • remove(model,function(err){})

      练习
      1.连接数据库 mongo
      2.查看所有数据库
      3.创建一个名为blog的库
      4.在blog库下创建一张名为article的表(集合)
      5.删除blog下的article表
      6.删除blog数据库
      7.再一次查看数据库,确定blog库是否还存在
    

mongoose 操作mongodb的步骤(重点)

1.引入模块

var mongoose=require("mongoose");

2.连接数据库

mongoose.connect("mongodb://localhost:27017/shop") //shop数据库名

2.得到的数据库连接句柄

var db=mongoose.connwction

3.利用句柄连接数据库成功的事件

db.on('open', function(err){
    if(err){
        console.log("连接数据库失败")
        throw err;
    }
    console.log("连接成功")
});

4.定义表数据结构

let production= new mongoose.Schema({
    id: String,
    price:Number,
    shopCart: Array
},(versionKey:false));

5.将表的数据结构和表关联起来

var productModel=mongoose.model("any","production","prodcuts")//any随便起的,production之前定义的数据结构products表名后两个关联

5.导出

module.exports={
    随便起:prodcutModel
}

express-generator

1、用于快速生成一个基于express服务器的项目

2、使用方法

(1)、第一步:全局安装

  • cnpm install express-generator -g

(2)、第二步:使用

  • express -e projectName
  • 输入参数说明 -e 使用的模板类型 (-e 代表ejs模板 -pug 代表pug模板)
  • projectName 是项目名称

(3)、进入该项目

  • cd projectName

(4)、安装项目依赖包

  • cnpm install
posted @ 2017-10-27 15:12  不完美的完美  阅读(1454)  评论(0编辑  收藏  举报