摘要:通過(guò)構(gòu)造而成,除了具有定義的數(shù)據(jù)庫(kù)骨架以外,還可以具體的操作數(shù)據(jù)庫(kù)。通過(guò)創(chuàng)建的實(shí)體,它也可以操作數(shù)據(jù)庫(kù)。但比更具操作性。
原文鏈接:Mongoose
前言學(xué)數(shù)據(jù)庫(kù)肯定需要知道怎么連接后臺(tái)
Mongoose 是用來(lái)方便連接 MongoDB 與 node 的一個(gè)工具包
是時(shí)候?qū)W習(xí)一波
連接數(shù)據(jù)庫(kù)前需要先打開(kāi)數(shù)據(jù)庫(kù) MongoDB
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("數(shù)據(jù)庫(kù)連接失?。? + error); }); db.connection.on("open", function () { console.log("------數(shù)據(jù)庫(kù)連接成功!------"); });操縱數(shù)據(jù)
Schema:數(shù)據(jù)庫(kù)集合的模型骨架,或者是數(shù)據(jù)屬性模型傳統(tǒng)意義的表結(jié)構(gòu)。
Model :通過(guò)Schema構(gòu)造而成,除了具有Schema定義的數(shù)據(jù)庫(kù)骨架以外,還可以具體的操作數(shù)據(jù)庫(kù)。
Entity:通過(guò)Model創(chuàng)建的實(shí)體,它也可以操作數(shù)據(jù)庫(kù)。
但Model比Entity更具操作性。
let mongoose = require("mongoose"); let db = mongoose.connect("mongodb://127.0.0.1:27017/test"); let TestSchema = new mongoose.Schema({ // 使用 Schema 創(chuàng)建集合結(jié)構(gòu)(表結(jié)構(gòu)) 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 結(jié)構(gòu),若不存在 test1 集合,則創(chuàng)建 let TestEntity = new TestModel({ // 使用 TestModel 新建一個(gè)數(shù)據(jù) name : "helloworld", age : 28, email: "[email protected]" }); TestEntity.save(function(error,doc){ // 保存數(shù)據(jù)于 test1 if(error){ console.log("error :" + error); }else{ console.log(doc); } });Model增刪查改
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()); // 集合結(jié)構(gòu)為空的話,不能插入數(shù)據(jù)增
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);
let conditions = {name: "helloworld"}; TestModel.remove(conditions, function(error){ if(error) { console.log(error); } else { console.log("Delete success!"); } });改
Model.update(查詢條件,更新對(duì)象,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));
若第一個(gè)參數(shù)為空對(duì)象,則 docs 為所有數(shù)據(jù)
TestModel.find({ "age": 28 }, function (error, docs) { if(error){ console.log("error :" + error); }else{ console.log(docs); //docs: age為28的所有文檔 } });結(jié)語(yǔ)
學(xué)習(xí)源: Mongoose
真是通俗易懂的操作呀
MongoDB 好感度 up up up
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/18989.html
摘要:如圖連接成功后,顯示你的數(shù)據(jù)庫(kù),在這個(gè)節(jié)目可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。如圖安裝與加載首先假定你已經(jīng)安裝了,命令行工具輸入在使用的文件中即可。創(chuàng)建讀取更新刪除單值讀取上文是在中基于對(duì)進(jìn)行增刪查改操作的簡(jiǎn)單介紹,以后會(huì)有進(jìn)階的文章。 關(guān)鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
摘要:如圖連接成功后,顯示你的數(shù)據(jù)庫(kù),在這個(gè)節(jié)目可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。如圖安裝與加載首先假定你已經(jīng)安裝了,命令行工具輸入在使用的文件中即可。創(chuàng)建讀取更新刪除單值讀取上文是在中基于對(duì)進(jìn)行增刪查改操作的簡(jiǎn)單介紹,以后會(huì)有進(jìn)階的文章。 關(guān)鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
摘要:前言學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講項(xiàng)目地址效果后臺(tái)管理系統(tǒng)前端頁(yè)面架構(gòu)可以看到,在整個(gè)項(xiàng)目中,沒(méi)有頁(yè)面的跳轉(zhuǎn)只有前后端的數(shù)據(jù)交換,所有的頁(yè)面更新都是組件更新和數(shù)據(jù)更新后端只對(duì)數(shù) 前言 學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講 項(xiàng)目github地址:https://git...
摘要:前言學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講項(xiàng)目地址效果后臺(tái)管理系統(tǒng)前端頁(yè)面架構(gòu)可以看到,在整個(gè)項(xiàng)目中,沒(méi)有頁(yè)面的跳轉(zhuǎn)只有前后端的數(shù)據(jù)交換,所有的頁(yè)面更新都是組件更新和數(shù)據(jù)更新后端只對(duì)數(shù) 前言 學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講 項(xiàng)目github地址:https://git...
摘要:前言學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講項(xiàng)目地址效果后臺(tái)管理系統(tǒng)前端頁(yè)面架構(gòu)可以看到,在整個(gè)項(xiàng)目中,沒(méi)有頁(yè)面的跳轉(zhuǎn)只有前后端的數(shù)據(jù)交換,所有的頁(yè)面更新都是組件更新和數(shù)據(jù)更新后端只對(duì)數(shù) 前言 學(xué)習(xí)前端也有一段時(shí)間了做個(gè)個(gè)人博客網(wǎng)站吧正好總結(jié)練習(xí)一下這段時(shí)間的所學(xué)文章很長(zhǎng),會(huì)拆成三篇來(lái)講 項(xiàng)目github地址:https://git...
閱讀 3485·2023-04-25 23:25
閱讀 2145·2021-11-12 10:36
閱讀 2842·2019-08-30 12:47
閱讀 2077·2019-08-29 18:45
閱讀 475·2019-08-29 17:28
閱讀 1818·2019-08-29 17:15
閱讀 1740·2019-08-29 16:05
閱讀 1453·2019-08-29 14:17