原文連接:Mongoosejavascript
學數據庫確定須要知道怎麼鏈接後臺Mongoose
是用來方便鏈接 MongoDB
與 node
的一個工具包
是時候學習一波java
鏈接數據庫前須要先打開數據庫 MongoDBnode
yarn add mongoose // 安裝 mongoose 依賴
let mongoose = require("mongoose"); let db = mongoose.connect("mongodb://127.0.0.1:27107/test"); db.connection.on("error", function (error) { console.log("數據庫鏈接失敗:" + error); }); db.connection.on("open", function () { console.log("------數據庫鏈接成功!------"); });
Schema:數據庫集合的模型骨架,或者是數據屬性模型傳統意義的表結構。git
Model :經過Schema構造而成,除了具備Schema定義的數據庫骨架之外,還能夠具體的操做數據庫。mongodb
Entity:經過Model建立的實體,它也能夠操做數據庫。數據庫
但Model比Entity更具操做性。mongoose
let mongoose = require("mongoose"); let db = mongoose.connect("mongodb://127.0.0.1:27017/test"); let TestSchema = new mongoose.Schema({ // 使用 Schema 建立集合結構(表結構) name : { type:String }, age : { type:Number, default:0 }, email: { type:String }, time : { type:Date, default:Date.now } }); let TestModel = db.model("test1", TestSchema ); // test1 集合使用 Schema 結構,若不存在 test1 集合,則建立 let TestEntity = new TestModel({ // 使用 TestModel 新建一個數據 name : "helloworld", age : 28, email: "helloworld@qq.com" }); TestEntity.save(function(error,doc){ // 保存數據於 test1 if(error){ console.log("error :" + error); }else{ console.log(doc); } });
let TestSchema = new mongoose.Schema({ name : { type:String }, age : { type:Number, default:0 }, email: { type:String }, time : { type:Date, default:Date.now } }); let TestModel = db.model("test1", TestSchema); // let TestModel = db.model("test1", new mongoose.Schema()); // 集合結構爲空的話,不能插入數據
Model方法 create工具
TestModel.create({ name:"model_create", age:26}, function(error,doc){ if(error) { console.log(error); } else { console.log(doc); } });
entity方法 save學習
let Entity = new TestModel({name:"entity_save",age: 27}); Entity.save(function(error,doc) { if(error) { console.log(error); } else { console.log(doc); } });
Model.remove(查詢條件,callback);ui
let conditions = {name: 'helloworld'}; TestModel.remove(conditions, function(error){ if(error) { console.log(error); } else { console.log('Delete success!'); } });
Model.update(查詢條件,更新對象,callback)
var conditions = {name : 'test_update'}; var update = {$set : { age : 16 }}; // $set 表示只修改 age,不然全覆蓋 TestModel.update(conditions, update, function(error){ if(error) { console.log(error); } else { console.log('Update success!'); } });
Model.find({}, function(error, docs));
若第一個參數爲空對象,則 docs
爲全部數據
TestModel.find({ "age": 28 }, function (error, docs) { if(error){ console.log("error :" + error); }else{ console.log(docs); //docs: age爲28的全部文檔 } });
學習源: Mongoose真是通俗易懂的操做呀MongoDB 好感度 up up up?