zoukankan      html  css  js  c++  java
  • mongodb

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

    mysql:是关系型数据库

    第一部分:安装mongodb

    1、下载安装mongodb

    2、配置数据目录

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

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

    添加服务




    • mongod.exe
    • 设置数据存放路径: --dbpath "C:mongodbdatadb"
    • 设置日志存放路径: --logpath "C:mongodbdataloglog.txt"
    • 设置日志的记录方式:--logappend
    • 设置数据库的端口号:--port 27000
    • 设置服务的名称:--serviceName "Name"
    • 设置服务的显示名称:--serviceDisplayName "DisplayName"
    • 添加到windows服务里:--install
    • 安装mongodb服务(使用管理员权限打开命令)
    • 32位系统:mongod --dbpath="C:datadb" --logpath="C:dataloglog.txt" --serviceName MongoDB --journal --storageEngine=mmapv1 --install
    • 64位系统:mongod --dbpath="C:datadb" --logpath="C:dataloglog.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: true,overwrite:true}

    • 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
  • 相关阅读:
    java第二周的学习知识
    java第一次课
    今天晚上有事,代码假期完成。
    [leetcode] Minimum Path Sum
    java访问权限整理
    java IO整理-File
    java初始化顺序
    enum使用整理
    工厂模式总结
    java IO-流
  • 原文地址:https://www.cnblogs.com/DCL1314/p/7743434.html
Copyright © 2011-2022 走看看