mongoose入門以及 mongoose 實現數據 的增、刪、改、查


  

一、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,接下就是生成 Modelmodel 是由 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);
    })
});

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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