mongoose 入门以及 mongoose 实现数据 的增、删、改、查
一、mongoose 介紹
Mongoose 是在 node.js 異步環(huán)境下對 mongodb 進行便捷操作的對象模型工具。Mongoose 是 NodeJS 的驅動,不能作為其他語言的驅動。
Mongoose 有兩個特點 :
1、通過關系型數(shù)據(jù)庫的思想來設計非關系型數(shù)據(jù)庫
2、基于 mongodb 驅動,簡化操作
二、mongoose 的安裝以及使用
官網(wǎng):https://mongoosejs.com/
3、定義 Schema 數(shù)據(jù)庫中的 Schema,為數(shù)據(jù)庫對象的集合。schema 是 mongoose 里會用到的一種數(shù)據(jù)模式, 可以理解為表結構的定義;
每個 schema 會映射到 mongodb 中的一個 collection,它不具備 操作數(shù)據(jù)庫的能力
var UserSchema=mongoose.Schema({ name: String, age:Number, status:'number' })4、創(chuàng)建數(shù)據(jù)模型 定義好了 Schema,接下就是生成 Model。
model 是由 schema 生成的模型,可以對數(shù)據(jù)庫的 操作。
注意:mongoose.model 里面可以傳入兩個參數(shù)也可以傳入三個參數(shù)
mongoose.model(參數(shù) 1:模型名稱(首字母大寫),參數(shù) 2:Schema)
mongoose.model(參數(shù) 1:模型名稱(首字母大寫),參數(shù) 2:Schema,參數(shù) 3:數(shù)據(jù)庫集合名稱)
如果傳入 2 個參數(shù)的話:這個模型會和模型名稱相同的復數(shù)的數(shù)據(jù)庫建立連接:如通過下面 方法創(chuàng)建模型,那么這個模型將會操作 users 這個集合。
var User=mongoose.model('User', UserSchema);如果傳入 3 個參數(shù)的話:模型默認操作第三個參數(shù)定義的集合名稱
5、查找數(shù)據(jù)
User.find({},function(err,docs){ if(err){console.log(err); return; }console.log(docs); })6、增加數(shù)據(jù)
var u=new User({ //實例化模型 傳入增加的數(shù)據(jù) name:'lisi2222333', age:20, status:true }) u.save();
7、修改數(shù)據(jù)
User.updateOne({ name: 'lisi2222' }, { name: '哈哈哈' }, function(err, res) { if(err){console.log(err); return; }console.log('成功') });
8、刪除數(shù)據(jù)
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); }) }); // 1.引入 const mongoose = require('mongoose')// 2.建立連接 mongoose.connect('mongodb://admin:admin@127.0.0.1:27017/eggcms?authSource=admin')// 3.操作users表(集合) 定義一個Schema // Schema里面的對象和數(shù)據(jù)庫里面表的字段需要一一對應var UserSchema = mongoose.Schema({name: String,age: Number,status: Number }) // 4.定義數(shù)據(jù)庫模型,操作數(shù)據(jù)庫 // model里面的第一個參數(shù): // 1.首字母大寫 // 2.要和數(shù)據(jù)庫表(集合)名稱對應 var User = mongoose.model('User', UserSchema, 'users')// 5.查詢users表的數(shù)據(jù) // User.find({}, function(err, data) { // if(err) { // console.log(err) // return; // }// console.log(data) // })// 6.增加數(shù)據(jù) // 6.1 實例化Model 通過實例化User Model 創(chuàng)建增加的數(shù)據(jù) // var u = new User({ // name: '里斯', // age: 20, // status: 1 // });// 6.2 實例.save() // u.save(function(err) { // if(err) { // console.log(err) // return; // } // console.log('增加數(shù)據(jù)成功') // }); // 執(zhí)行增加操作// 7.更新數(shù)據(jù) // User.updateOne({ "_id": "607ab2dcf07e0000e40057a2" }, { "name": "曾鵬" }, function (err, data) { // if (err) { // console.log(err) // return; // } // console.log(data) // })// 8.刪除數(shù)據(jù) User.deleteOne({ "_id": "607ab2dcf07e0000e40057a2" }, (err, result)=>{if (err) {console.log(err)return;}console.log(result) })
三、mongoose 模塊化
總結
以上是生活随笔為你收集整理的mongoose 入门以及 mongoose 实现数据 的增、删、改、查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用express搭建服务器获取MySQ
- 下一篇: python网络爬虫系列(三)——coo