1. 程式人生 > >mongoose 操作mongodb資料庫

mongoose 操作mongodb資料庫

//1.引入mongoose

const mongoose = require('mongoose');

//2、建立連線  
mongoose.connect('mongodb://127.0.0.1:27017/koademo',{useNewUrlParser:true});

//3、操作users表(集合)   定義一個Schema   Schema裡面的物件和資料庫表裡面的欄位需要一一對應

var UserSchema=mongoose.Schema({

    name:String,
    age:Number,
    status:Number

})
//4、定義資料庫模型  操作資料庫

// model裡面的第一個引數 要注意:1首字母大寫  2、要和資料庫表(集合 )名稱對應  這個模型會和模型名稱相同的複數的資料庫表建立連線

//var User=mongoose.model('User',UserSchema);    // 預設會操作 users表(集合)

var User=mongoose.model('User',UserSchema,'user');  //預設會操作第三個引數配置的表  user表(集合),沒有第三個引數,則預設操作users表,複數的表

//5、查詢users表的資料

    User.find({},function(err,doc){ 

        if(err){

            console.log(err);
            return;
        }
        console.log(doc);
    })  



//6、增加資料

    // 6.1例項化 Model     通過例項化User Molde 建立增加的資料

    //6.2 例項.save()


    var u=new User({
        name:'李四',
        age:20,
        status:1
    });

    u.save(function(err){
        if(err){
            console.log(err);

            return;
        }

        console.log('成功')

    });  //執行增加操作
//1.引入mongoose

const mongoose = require('mongoose');
//2、建立連線  
mongoose.connect('mongodb://127.0.0.1:27017/koademo',{useNewUrlParser:true});
//3、定義一個Schema 
var NewsSchema=mongoose.Schema({
    title:"string",
    author:String,
    pic:String,
    content:String,
    status:Number
})

//4、定義操作資料庫的Model
var News=mongoose.model('News',NewsSchema,'news');
//5、增加資料
//通過例項化 Model 建立增加的資料
    var news=new News({
        title:"我是一個新聞11111",
        author:'張三1',
        content:'我是新聞的內容',
        status:1

    });

    news.save(function(err){
        if(err){
            return console.log(err);
        }

         console.log('成功')
    });
//6、修改資料
News.updateOne(
    {"_id":"5b767455193f6630d830fc25"},   
    {"title":"我是一個新聞2222"},
    function(err,doc){
        if(err){
                return console.log(err);
            }

            console.log(doc)

    })
//刪除資料
News.deleteOne({"_id":"5b767455193f6630d830fc25"}, (err,result)=>{      
            if(err){
                return console.log(err);
            }
            console.log(result)
})
//mongoose 預設引數、mongoose 模組化 、mongoose效能疑問



// mongoose 預設引數:增加資料的時候,如果不傳入資料會使用預設配置的資料

var mongoose=require('mongoose');

//useNewUrlParser這個屬性會在url裡識別驗證使用者所需的db,未升級前是不需要指定的,升級到一定要指定。

mongoose.connect('mongodb://127.0.0.1:27017/koademo',{ useNewUrlParser: true },function(err){
        if(err){

            console.log(err);
            return;
        }
        console.log('資料庫連線成功')
});


// 定義資料表(集合的)對映  注意:欄位名稱必須和資料庫保持一致

var UserSchema=mongoose.Schema({

    name:String,
    age:Number,
    status:{
        type:Number,
        default:1   
    }
})

//定義model操作資料庫 

var UserModel=mongoose.model("User",UserSchema,'user');


//資料的查詢
// UserModel.find({},function(err,doc){
//     if(err){

//         console.log(err);
//         return;
//     }

//     console.log(doc);
// })



//資料的增加


// var user=new UserModel({
//     name:'張三88888888888888',
//     age:40,
//     status:1,
//     sex:"男"
// })

// user.save(function(err){

//     if(err){

//         console.log(err);
//         return;
//     }
//     console.log('增加資料成功')
// });










var user=new UserModel({
    name:'張三6666666666666666',
    age:30    
})

user.save(function(err){

    if(err){

        console.log(err);
        return;
    }
    console.log('增加資料成功')
});
var UserModel=require('./model/user.js');


var NewsModel=require('./model/news.js');



var user=new UserModel({

    name:"李四666",
    age:40
})


user.save(function(err){

    if(err){

        console.log(err);
        return;
    }

    //獲取user表的資料


    UserModel.find({},function(err,docs){

        if(err){
    
            console.log(err);
            return;
        }
        console.log(docs);
    })
})




// NewsModel.find({},function(err,docs){

//     if(err){

//         console.log(err);
//         return;
//     }
//     console.log(docs);
// })
var mongoose=require('./db.js');


var UserSchema=mongoose.Schema({
    name:String,
    age:Number,
    status:{
        type:Number,
        default:1   
    }
})



module.exports=mongoose.model('User',UserSchema,'user');
console.time('user');

var UserModel=require('./model/user.js');

console.timeEnd('user');



console.time('news');
var NewsModel=require('./model/news.js');

console.timeEnd('news');

預定義修飾符

var mongoose=require('./db.js');


var NewsSchema=mongoose.Schema({
    title:{
        type:String,
        trim:true    //定義 mongoose模式修飾符 去掉空格
    },
    author:String,
    pic:String,    
    content:String,
    status:{
        type:Number,
        default:1

    }
})


module.exports=mongoose.model('News',NewsSchema,'news');

set修飾符給每個圖片增加http

var mongoose=require('./db.js');


var FocusSchema=mongoose.Schema({
    title:{
        type:String,
        trim:true    //定義 mongoose模式修飾符 去掉空格
    },   
    pic:String,    
    redirect:{
        type:String,
        set(parmas){   //增加資料的時候對redirect欄位進行處理
            // parmas可以獲取redirect的值 、    返回的資料就是redirect在資料庫實際儲存的值
            /*
             www.baidu.com              http://www.baidu.com
             http://www.baidu.com       http://www.baidu.com
            */
            if(!parmas){
                return ''
            }else{
               if(parmas.indexOf('http://')!=0 && parmas.indexOf('https://')!=0){

                    return 'http://'+parmas;
               }
                return parmas

            } 

        }
    },
    status:{
        type:Number,
        default:1

    }
})

module.exports=mongoose.model('Focus',FocusSchema,'focus');

get修飾符不建議使用

var mongoose=require('./db.js');


var UserSchema=mongoose.Schema({
    
    name:{

        type:String,
        get(params){   //不建議使用

            return "a001"+params
        }   
    },
    age:Number,       
    status:{
        type:Number,
        default:1

    }
})


module.exports=mongoose.model('User',UserSchema,'user');