摘要:更重要的是它將返回的字符串包裝成了對(duì)象,這在操作時(shí)要比直接使用字符串方便許多。今天就利用的官方文檔對(duì)它的標(biāo)準(zhǔn)操作進(jìn)行簡(jiǎn)單的分析。
NOSQL存儲(chǔ)作為一種與關(guān)系性數(shù)據(jù)庫(kù)完全不同的存儲(chǔ)方式,提供了靈活,大型,敏捷,可擴(kuò)展的存儲(chǔ)模式,并且在有著復(fù)雜的數(shù)據(jù)情形下性能完全
不遜色于RDBMS,而作為NOSQL中流行程度較高的數(shù)據(jù)庫(kù),mongodb有著上手容易,數(shù)據(jù)查詢方式多樣等諸多特點(diǎn),所以也深受歡迎
今天說(shuō)的mongoose是一種利用node模塊對(duì)mongodb數(shù)據(jù)庫(kù)進(jìn)行操作的工具,它有著結(jié)構(gòu)化,操作性強(qiáng),可重復(fù)的優(yōu)點(diǎn)。更重要的是它將mongodb返回的Json字符串包裝成了Json對(duì)象,這在操作時(shí)要比直接使用字符串方便許多。
今天就利用mongoose的官方文檔對(duì)它的標(biāo)準(zhǔn)操作進(jìn)行簡(jiǎn)單的分析。
?1. 獲取mongoose
var mongoose = require("mongoose");
?2 . 連接數(shù)據(jù)庫(kù)
mongoose.connect("mongodb://yourdb");
?3. 連接成功或發(fā)生error的事件觸發(fā)
var db = mongoose.connection; db.on("error", console.error.bind(console, "connection error:")); //連接失敗時(shí)的操作 db.once("open", function(){ //do something after connecting }) //連接成功時(shí)的操作
?4. 在mongoose中,所有事務(wù)都由Schema派生
1) 定義Schema var kittySchema = mongoose.Schema({ name: String }) 2) 將Schema轉(zhuǎn)換為Model var Kitten = mongoose.model("Kitten", kittySchema);
?5. 所有的事務(wù)都定義為model
var silence = new Kitten(name: "Silence");
?6. 在Schema中添加屬性和方法
kittySchema.methods.speak = function() { var greeting = this.name; ? "meow name is" + this.name : "i don"t have a name"; console.log(greeting); }//定義方法 var Kitten = mongoose.model("Kitten", kittySchema); var fluffy = new Kitten({ name: fluffy }); fluffy.speak();//使用方法
?7. 保存數(shù)據(jù)對(duì)象(如果發(fā)生錯(cuò)誤時(shí)會(huì)返回,且the first arg是err)
fluffy.save(function(err, fluffy) { if(err) return console.error(err); fluffy.speak(); });
?8. 顯示所有數(shù)據(jù)對(duì)象(Kitten)
Kitten.find(function(err, Kittens) { //Kittens是查詢后得到的數(shù)據(jù)對(duì)象 if(err) return console.error(err); console.log(Kittens); })
?9. query method(舉例)
Kitten.find({ name: yourquery }, callback);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/18852.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...
摘要:的邏輯結(jié)構(gòu)是一種層次結(jié)構(gòu),主要由文檔集合數(shù)據(jù)庫(kù)這三部分組成的。文檔由鍵值對(duì)構(gòu)成,像等,它是核心單元,的文檔,相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的一行記錄。我們以此為例看它如何使用真實(shí)項(xiàng)目中參考學(xué)習(xí)筆記之的使用入門教程的一些操作命令 showImg(https://segmentfault.com/img/bVN45N?w=1192&h=578); 簡(jiǎn)介 在說(shuō)MongoDB數(shù)據(jù)插入操作之前,我們先來(lái)簡(jiǎn)單...
摘要:如果不存在則創(chuàng)建新記錄。如果值為,執(zhí)行驗(yàn)證。如果選項(xiàng)為,在新建時(shí)插入文檔定義的默認(rèn)值。以模式進(jìn)行更新。禁用模式,允許覆蓋記錄示例更新多個(gè)為的文檔將設(shè)置為更新多條數(shù)據(jù)與相同更新一條數(shù)據(jù)設(shè)置無(wú)效查找查詢條件控制返回的字段控制選項(xiàng)回調(diào)函數(shù)。 在使用node.js時(shí),時(shí)常與之搭配的是mongoDB,一般我們不寫原生mongo語(yǔ)法,一個(gè)經(jīng)常使用的mongo庫(kù)便是mongoose,由于個(gè)人記性比較...
摘要:今天要說(shuō)的是的方法,也就是數(shù)據(jù)更新語(yǔ)法參數(shù)表示查詢條件表示更新內(nèi)容表示更新的條件反饋函數(shù)選項(xiàng)值默認(rèn)值默認(rèn)在中進(jìn)行值的設(shè)置如果沒有匹配項(xiàng)是否創(chuàng)建新文件是否更新多個(gè)文件是否對(duì)此次更新重寫值是否驗(yàn)證更新的值在建立時(shí),設(shè)置默認(rèn)插入值允許對(duì)非更新選項(xiàng) 今天要說(shuō)的是mongoose的update方法,也就是數(shù)據(jù)更新 語(yǔ)法: Model.update(conditions,doc,[options]...
閱讀 1336·2021-09-27 13:35
閱讀 2652·2021-09-06 15:12
閱讀 3452·2019-08-30 15:55
閱讀 2901·2019-08-30 15:43
閱讀 488·2019-08-29 16:42
閱讀 3506·2019-08-29 15:39
閱讀 3128·2019-08-29 12:28
閱讀 1304·2019-08-29 11:11