一、使用nodejs操作MongoDB數據庫
①使用官方的mongodb包來操作
②使用第三方的mongoose包來操作(比較常用)
// 首先必須使MongoDB數據庫保持開啟狀態 // npm下載mongoose包並引入 var mongoose=require('mongoose'); // 連接MongoDB數據庫 mongoose.connect('mongodb://localhost/test',{useMongoClient:true}); mongoose.Promise=global.Promise; // 創建一個模型,即設計數據庫 var Cat=mongoose.model('Cat',{name:String}); // 實例化一個Cat var kitty=new Cat({name:'hello world'}); // 持久化保存kitty實例 kitty.save(function(err,ret){ if(err){ console.log(err) }else{ console.log(ret) } })
③使用mongoose操作MongoDB數據庫例子:
- 基本工作:開啟MongoDB服務,連接數據庫,npm安裝包並引包、連接數據庫、設計文檔結構、將文檔發布為模型
// 首先必須使MongoDB數據庫保持開啟狀態 // npm下載mongoose包並引入 var mongoose=require('mongoose'); // 連接MongoDB數據庫 mongoose.connect('mongodb://localhost/test'); // 設計文檔結構 var Schema=mongoose.Schema; var userSchema=new Schema({ username:{type:String,required:true}, password:{type:String,required:true}, email:{type:String}, }); // 將文檔發布為模型mongoose.model()方法 /** * 第一個參數:傳入一個大寫名詞字符串用來表示數據庫名, * mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 * 例如這里的User會變成users集合名稱 * 第二個參數:架構schema */ var User= mongoose.model('User',userSchema) // 實例化一個User var admin=new User({ username:'admin', password:'123456', email:'admin@admin.com' }); // 持久化保存admin實例 admin.save(function(err,ret){ if(err){ console.log('保存失敗') }else{ console.log('保存成功'); console.log(ret); } })
- 查詢數據(查)
// 查詢所有的數據 User.find(function(err,ret){ if(err){ console.log('查詢失敗') }else{ console.log(ret) } });
//按條件查詢所有 User.find({username:'eric'},function(err,ret){ if(err){ console.log('查詢失敗') }else{ console.log(ret) } })
// 按條件查詢單個 User.findOne({username:'eric'},function(err,ret){ if(err){ console.log('查詢失敗') }else{ console.log(ret) } });
- 更改數據(改)
// 根據條件更新所有 User.update({username:'eric'},function(err,ret){ if(err){ console.log('更新失敗') }else{ console.log(ret) } });
// 根據指定條件更新一個 User.findOneAndUpdate({username:'eric'},function(err,ret){ if(err){ console.log('更新失敗') }else{ console.log(ret) } });
// 根據id更新一個 User.findByIdAndUpdate('5a12321431234124141',{password:'123'},function(err,ret){ if(err){ console.log('更新失敗') }else{ console.log(ret) } });
- 刪除數據(刪)
// 根據條件刪除所有 User.remove({username:'eric'},function(err,ret){ if(err){ console.log('刪除失敗') }else{ console.log(ret) } });
// 根據指定條件刪除一個 User.findOneAndRemove({username:'eric'},function(err,ret){ if(err){ console.log('刪除失敗') }else{ console.log(ret) } });
// 根據id刪除一個 User.findByIdAndRemove('5a12321431234124141',{password:'123'},function(err,ret){ if(err){ console.log('刪除失敗') }else{ console.log(ret) } });
二、使用nodejs操作MySQL數據庫
①npm安裝包mysql----創建連接----連接數據庫----執行數據操作(比如:增查刪改)----關閉連接
②舉例:
- 數據庫和數據表
- 查詢操作
// npm 安裝並引入mysql包 var mysql=require('mysql'); // 創建連接 var connection=mysql.createConnection({ host:'localhost', user:'root', password:'0000', database:'test' }) // 連接數據庫(打開冰箱門) connection.connect(); // 執行數據庫操作(把大象放到冰箱) // 注意:無論是查詢,修改,增加,還是刪除,就在第一個參數里面寫SQL語句即可 // 查詢 connection.query('SELECT * FROM `users`',function(error,results,fields){ if(error) throw error; console.log('the solution is:',results); }); // 關閉連接(關閉冰箱門) connection.end();
- 增加操作
// npm 安裝並引入mysql包 var mysql=require('mysql'); // 創建連接 var connection=mysql.createConnection({ host:'localhost', user:'root', password:'0000', database:'test' }) // 連接數據庫(打開冰箱門) connection.connect(); // 執行數據庫操作(把大象放到冰箱) // 注意:無論是查詢,修改,增加,還是刪除,就在第一個參數里面寫SQL語句即可 // 增加 connection.query('INSERT INTO users VALUES(11,"admin",0,"1994-1-1","000000000")',function(error,results,fields){ if(error) throw error; console.log('the solution is:',results); }); // 查詢 connection.query('SELECT * FROM `users`',function(error,results,fields){ if(error) throw error; console.log('the solution is:',results); }); // 關閉連接(關閉冰箱門) connection.end();