一、mongoose 介紹
Mongoose 是在 node.js 異步環境下對 mongodb 進行便捷操作的對象模型工具。Mongoose 是 NodeJS 的驅動,不能作為其他語言的驅動。
Mongoose 有兩個特點
1、通過關系型數據庫的思想來設計非關系型數據庫
2、基於 mongodb 驅動,簡化操作
二、mongoose 的安裝以及使用
官網:https://mongoosejs.com/
1. 安裝
npm i mongoose --save
2、引入 mongoose 並連接數據庫
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); 如果有賬戶密碼需要采用下面的連接方式: mongoose.connect('mongodb://eggadmin:123456@localhost:27017/eggcms');
3、定義 Schema
數據庫中的 Schema,為數據庫對象的集合。schema 是 mongoose 里會用到的一種數據模式, 可以理解為表結構的定義;每個 schema 會映射到 mongodb 中的一個 collection,它不具備操作數據庫的能力
var UserSchema=mongoose.Schema({ name: String, age:Number, status:'number' })
4、創建數據模型
定義好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以對數據庫的操作。
注意:mongoose.model 里面可以傳入兩個參數也可以傳入三個參數 mongoose.model(參數 1:模型名稱(首字母大寫),參數 2:Schema)
mongoose.model(參數 1:模型名稱(首字母大寫),參數 2:Schema,參數 3:數據庫集合名 稱)
如果傳入 2 個參數的話:這個模型會和模型名稱相同的復數的數據庫建立連接:如通過下面 方法創建模型,那么這個模型將會操作 users 這個集合。
如果傳入 3 個參數的話:模型默認操作第三個參數定義的集合名稱
var User=mongoose.model('User', UserSchema);
5、查找數據
User.find({},function(err,docs){ if(err){ console.log(err); return; } console.log(docs); })
6、增加數據
var u=new User({ //實例化模型 傳入增加的數據 name:'lisi2222333', age:20, status:true }) u.save();
7、修改數據
User.updateOne({ name: 'lisi2222' }, { name: '哈哈哈' }, function(err, res) { if(err){ console.log(err); return; } console.log('成功') });
8、刪除數據
User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, function (err) { if (err) { console.log(err); return; } // deleted at most one tank document console.log('成功'); });
9、保存成功查找
var u = new User({ name: 'lisi2222333', age: 20, status: true //類型轉換 }) u.save(function (err, docs) { if (err) { console.log(err); return; } console.log(docs); User.find({}, function (err, docs) { if (err) { console.log(err); return; } console.log(docs); }) });