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: 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM