mongodb和nodejs mongoose使用詳解

ChaunceyQu發表於2019-02-16

安裝mongodb

首先要安裝mongodb,具體安裝過程參考菜鳥教程

執行mongodb

因為我是mac,所以以下內容以OS系統為主,Windows系統建議參考菜鳥教程

進入mongodb的bin檔案目錄下,執行mongod執行檔案

sudo ./mongod //以管理員身份執行

然後另開一個命令列,同樣進入mongodb的bin檔案目錄下,執行mongo執行檔案,然後便會進入mongodb的shell環境

./mongo
//進入mongodb的shell環境
>2+2
4

在mongodb的shell環境中可以直接運算元據庫,語法請參考菜鳥教程
但shell操作比較反人類,我在這裡推薦mongodb的GUI軟體——Robo 3T,可以自行在官網下載

nodejs中mongodb的API

在nodejs環境中我選擇的是mongoose模組

var mongoose=require(`mongoose`)

mongoose語法

詳情請戳mongoose官網

連線資料庫

mongoose.connect(`mongodb://localhost:27017/test`)//test即為儲存的資料庫名稱,如果不存在將會自動生成

定義Schema和model

var CatSchema=mongoose.Schema({
    name:String,
    age:Number
})

var Cat=mongoose.model(`Cat`,CatSchema)
//也可以合二為一,直接定義model
var Cat=mongoose.model(`Cat`,{
    name:String,
    age:Number
})
//mongoose.model的第一個引數的字串加上字母s便是儲存在的資料庫表單的名稱(Cats)

mongoose Schema常用預置型別:

  1. String 字串
  2. Number 數字
  3. Date 日期
  4. Boolean 布林值
  5. 和陣列結合:[String] [Number]…

建立例項

var kitty=new Cat({
    name:`Kitty`,
    age:3
})

插入

kitty.save(function(err,res){
    if(err) console.error(err)
    else console.log(res)//res為儲存成功的物件
})

更新

var where={
    name:`Kitty`
}
var update={
    age:4
}

Cat.update(where,update,function(err,res){
    if(err) console.error(err)
    else console.log(res)
})

通過ID查詢並更新的方法

Cat.findByIdAndUpdate(whereById,update,function(err,res)){
    if(err) console.error(err)
    else console.log(res)
})

刪除

Cat.remove(where,function(err,res))
//通過ID查詢並刪除
Cat.findByIdAndRomove(where,function(err,res))

查詢

Cat.find(where,function(err,res))//res 返回查詢到的物件陣列

//可以限定輸出的內容
var opt={
     name:1//選擇輸出的值為1,不輸出的值為0(其他不指定預設為0)
}
Cat.find(where,opt,function(err,res))

//var where=_id
Cat.findById(where,function(err,res))//res 輸出查詢到的物件

查詢

Cat.count(where,function(err,res))//res輸出查詢數量

相關文章