MongoDB基礎三:mongoose實現數據增刪改查

一雪侥、mongoose 介紹

mongoose是在node.js 異步環(huán)境下對mongodb 進行便捷操作的對象模型工具。mongoose是NodeJS 的驅動肩刃,不能作為其他語言的驅動缚忧。

Mongoose 有兩個特點
  • 1、通過關系型數據庫的思想來設計非關系型數據庫
  • 2如蚜、基于mongodb模塊 驅動鸟廓,簡化操作

二、mongoose 的安裝以及使用

2.1 安裝
npm install mongoose --save
2.2 引入mongoose并連接數據庫
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');

如果mongodb數據庫有賬號密碼:

/**通過mongodb://username:password@host1:port/database_name?authSource指定驗證前面身份信息的數據庫來源 */
mongoose.connect('mongodb://賬號:密碼@ip地址:27017/集合名稱?authSource=admin',{ 
    useNewUrlParser: true,
});
2.3 定義Schema

Schema是mongoose 里會用到的一種數據模式续语,可以理解為表結構的定義垂谢;每個schema 會映射到mongodb 中的一個collection,它不具備操作數據庫的能力疮茄,只是對數據庫集合的各個字段類型的規(guī)范定義滥朱。

var UserSchema=mongoose.Schema({
    name: String,
    age:Number,
    status:'number'
})
2.4 創(chuàng)建數據模型

定義好了Schema,接下就是生成Model力试。model 是由schema 生成的模型徙邻,可以對數據庫的操作。
mongoose.model 里面可以傳入兩個參數也可以傳入三個參數:

  • mongoose.model(參數1:模型名稱(首字母大寫)畸裳,參數2:Schema)
  • mongoose.model(參數1:模型名稱(首字母大寫)缰犁,參數2:Schema,參數3:集合名稱)

如果傳入2 個參數的話:User模型會默認去操作與User模型同名的復數形式的集合怖糊,如通過下面方法創(chuàng)建模型帅容,那么這個模型將會操作users這個集合:

var User=mongoose.model('User', UserSchema);

如果傳入3 個參數的話:模型默認操作第三個參數定義的集合名稱,如下面的代碼伍伤,模型User會指定操作user這個集合:

var User=mongoose.model('User', UserSchema, 'user');
2.5 查找數據
/**模型.find({查詢條件}, (err, data)=>{回調函數}) */
User.find({}, (err, docs)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log(docs);
});
2.6 增加數據
/*模型實例化*/
const news = new News({
    title:'新聞標題',
    author:'joyitsai',
    pic:'01.png',
    content:'新聞內容',
    status: 1
});
/*實例.save((err,docs)=>{回調函數}) 來將數據保存到數據庫*/
news.save((err, docs)=>{
    if(err){
        console.log('添加數據出錯');
        return;
    }
    console.log(docs);
});
2.7 修改數據
News.updateOne(
    {'_id':'5cf5e613ba3c6298a8734973'}, //條件
    {title: '這是一則新聞111'},     //要更新的內容
    /*回調函數*/
    (err, docs)=>{
        if(err){return console.log('更新數據失敗');}
        console.log(docs);
    }
)
2.8 刪除數據
News.deleteOne(
    {'_id':'5cf5e613ba3c6298a8734973'}, //查找條件
    /*回調函數*/
    (err,docs)=>{
        if(err){return console.log('刪除數據失敗')}
        console.log(docs);
    }

)
2.9 保存成功查找
News.updateOne(
    {'_id':'5cf5e613ba3c6298a8734973'}, //條件
    {title: '這是一則新聞111'},     //要更新的內容
    (err, docs)=>{
        if(err){
            return console.log('更新數據失敗');
        }
        /**更新數據成功并徘,緊接著查詢數據 */
        News.find({},(err, docs)=>{
            if(err){
                return console.log(err)
            }
            console.log(docs);
        })
    }
)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扰魂,隨后出現的幾起案子麦乞,更是在濱河造成了極大的恐慌,老刑警劉巖劝评,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姐直,死亡現場離奇詭異,居然都是意外死亡蒋畜,警方通過查閱死者的電腦和手機简肴,發(fā)現死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來百侧,“玉大人砰识,你說我怎么就攤上這事能扒。” “怎么了辫狼?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵初斑,是天一觀的道長。 經常有香客問我膨处,道長见秤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任真椿,我火速辦了婚禮鹃答,結果婚禮上,老公的妹妹穿的比我還像新娘突硝。我一直安慰自己测摔,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布解恰。 她就那樣靜靜地躺著锋八,像睡著了一般。 火紅的嫁衣襯著肌膚如雪护盈。 梳的紋絲不亂的頭發(fā)上挟纱,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音腐宋,去河邊找鬼紊服。 笑死,一個胖子當著我的面吹牛胸竞,可吹牛的內容都是我干的欺嗤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼撤师,長吁一口氣:“原來是場噩夢啊……” “哼剂府!你這毒婦竟也來了拧揽?” 一聲冷哼從身側響起剃盾,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淤袜,沒想到半個月后痒谴,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡铡羡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年积蔚,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烦周。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡尽爆,死狀恐怖怎顾,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情漱贱,我是刑警寧澤槐雾,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站幅狮,受9級特大地震影響募强,放射性物質發(fā)生泄漏。R本人自食惡果不足惜崇摄,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一擎值、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逐抑,春花似錦鸠儿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至腐巢,卻和暖如春品追,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冯丙。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工肉瓦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胃惜。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓泞莉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親船殉。 傳聞我的和親對象是個殘疾皇子鲫趁,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容

  • MongoDB 1. MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫利虫。旨在為 WEB 應用...
    Kevinr閱讀 1,552評論 0 3
  • Mongodb 配置選項 通常在mongod.conf中 配置文件 設置了配置文件后啟動時以自定義的配置文件啟動:...
    AkaTBS閱讀 1,072評論 0 6
  • mongoose入門 MongoDB是一個開源的NoSQL數據庫挨厚,相比MySQL那樣的關系型數據庫,它更顯得輕巧糠惫、...
    huilegezai閱讀 4,436評論 0 14
  • 1. Mongodb Driver(不做介紹) npm install mongodb --save 2. mon...
    Grace_ji閱讀 807評論 0 0
  • 某天明明和女朋友筱筱以及她玩的好的男女同事一起去吃飯逛街疫剃,期間女朋友筱筱多次挽著男同事的手,表現的很親密硼讽,明明對此...
    天然氣閃爆閱讀 230評論 0 0