1. 程式人生 > >使用 mongoose 操作 MongoDB 資料庫之 增刪改查

使用 mongoose 操作 MongoDB 資料庫之 增刪改查

一、前言
CRUD
①正如Java語言裡邊使用JDBC操作MySQL,JavaScript則使用Node.js操作資料庫,
②而Java操作資料一般不用原生的JDBC程式碼,包裝好JDBC的框架提供了眾多的選擇,如DbUtils,Spring的JDBCTemplateHibernateMyBatis
③類似Java裡邊連線資料的框架,Node.js則使用模組,而個人感覺最符合人性的就是mongoose模組了。

二、Mongoose之CRUD

mongoose的CRUD主要有兩種方法,分別是Model的CRUD和Document的CRUD,本文義Model為例,其實Document也和它差不多,都在Mongoose的包裝下非常簡單。
之前有一篇是

MongoDB資料庫裡邊的CRUD
現在把裡邊的常用的CRUD改為基於Mongoose的CURD

1、下面寫個簡單的增例子,側重點在於使用 Mongoose 操作 MongoDB 的步驟,每個步驟都給出註釋

//1、連線資料庫
var mongoose =require("mongoose");
mongoose.connect("mongodb://localhost/test");//test為MongoDB的一個數據庫名
mongoose.connection.once("open",function () {
    console.log("資料庫連線了");
})

//2、將mongoose.Schema 賦值給一個變數
var Schema = mongoose.Schema; //3、建立schema var userSchema=new Schema({ name:String, password:String }); //4、根據schema,建立model var userModel=mongoose.model("users",userSchema); //5、根據schema約束,插入資料 userModel.create({ name:"55開", password:"kaigua" },function (err) { if(!err){ console.log("插入成功"
); } });

注意 Mongoose 不是 node 自帶的模組,需要事先下載,這裡推薦使用編譯器 webstorm
①先在專案的根目錄下new一個package.json,
②再在webstorm下面 Terminal,

這裡寫圖片描述

輸入如下語句回車,讓它下載完畢就好了

npm install mongoose --save

③如果你使用其他low的編譯器,就使用ctrl+R,開啟cmd,cd 到當前專案目錄下,使用 npm init,讓它自動生成一個package.json檔案,再使用 npm install mongoose –save,下載模組到當前專案下,
④其他:
Ⅰ、命令中的 install 可以省略為 i,即 npm i --save
Ⅱ、--save 的目的是使新增的模組被自動加入 package.json 依賴中,如下:

{
  "name": "application-name",
  "version": "0.0.1",
  "dependencies": {
    "mongoose": "^5.0.1"
  }
}

Ⅲ、準備工作後項目的架構如下

這裡寫圖片描述

三、CRUD 程式碼

這裡的程式碼寫在 mongoose.js 中
有了上面的準備工作,就可以進入下面的主題了,其實內容也不多。

//0、連線資料庫準備工作
var mongoose =require("mongoose");
mongoose.connect("mongodb://localhost/test");
mongoose.connection.once("open",function () {
    console.log("資料庫連線了");
})
var Schema = mongoose.Schema;
var userSchema=new Schema({
    name:String,
    password:String
});
var userModel=mongoose.model("users",userSchema);

//1、增加
userModel.create({
    name:"55開",
    password:"kaigua"
},function (err) {
    if(!err){
        console.log("插入成功");
    }
});
//2、查詢
userModel.find({name:"55開"},function(err,docs){
    if(!err){
        console.log(docs);
    }
});
//3、修改
userModel.updateMany({name:"55開"},{$set:{password:"lubenweiwudi"}},function (err) {
    if(!err){
        console.log("修改成功");
    }
});
//4、刪除
userModel.deleteMany({name:"55開"},function (err) {
    if(!err){
        console.log("刪除成功");
    }
});

四、小結