mongoose 操作mongodb資料庫
阿新 • • 發佈:2018-12-29
//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');