node.js + mongodb

先聲明 mongoClient

var mongoClient = require('monggodb').MongoClient,assert=require('assert');

接下來創(chuàng)建函數(shù) function MongoCRUD()

在函數(shù)中進(jìn)行數(shù)據(jù)庫的增刪改查的操作
先聲明地址
var db_addr = 'mongodb://127.0.0.1:4396';

//create
this.create = function (db_name, coll, data2insert, callback) { var db_url = db_addr + db_name; mongoClient.connect(db_url,function (err,db) { assert.equal(null,err); var col = db.collection(coll); col.insertOne(data2insert, callback); db.close(); });};

//查 read
this.read = function (db_name ,coll , query_param , callback) { var db_url = db_addr + db_name; mongoClient.connect(db_url,function (err,db) { assert.equal(null,err); var col = db.collection(coll); col.find(query_param,{'_id': 0}).limit(1).toArray(function (err,docs) { callback(err ,docs); db.close(); }); });};

//改 update
this.update = function (db_name,coll,query_param,data2set,data2push,data2pull,callback) { var db_url = db_addr + db_name; mongoClient.connect(db_url,function (err,db) { assert.equal(null,err); var col = db.collection(coll); var data2updata = {}; if (Object.keys(data2set).length > 0){ data2updata.$set = data2set; } if (Object.keys(data2push).length > 0){ data2updata.$addToSet = data2push; } if (Object.keys(data2pull).length > 0){ data2updata.$pull = data2pull; } col.finOneAndUpdate(query_param,data2updata,{returnOriginal:false,upsert:false},callback); db_close(); })}

//刪除 delete
this.delete =function (db_name,coll,query_param,callback) { var db_url = db_addr + db_name; mongoClient.connect(db_url,function (err,db) { assert.equal(null,err); var col = db.collection(coll); col.findOneAndUpdate(query_param,{$set:{status: -1}},{returnOriginal: false,upsert:false},callback) db.close(); });};

//list
this.list = function (db_name,coll,query_param,page,pagesize,callback) { assert(page > 0,'pagemust be greater than 0'); assert(pagesize > 0, 'pagesize must be greater than 0'); assert(pagesize <= 100, 'pagesize must be less than 100'); var skip_size = pagesize * (page - 1); var db_url = db_addr + db_name; mongoClient.connect(db_url,function (err ,db) { assert.equal(null,err); var col = db.collection(coll); col.find(query_param,{'_id':0}).sort({update_time: -1}).limit(pagesize).skip(skip_size).toArray(function (err,docs) { callback(err,docs); db_close; }); });};

最后用module.exports = MongoCRUD;將這個(gè)方法傳出去

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市家卖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锁右,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讶泰,死亡現(xiàn)場(chǎng)離奇詭異咏瑟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)痪署,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門码泞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狼犯,你說我怎么就攤上這事余寥。” “怎么了悯森?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵宋舷,是天一觀的道長。 經(jīng)常有香客問我瓢姻,道長祝蝠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮绎狭,結(jié)果婚禮上细溅,老公的妹妹穿的比我還像新娘。我一直安慰自己儡嘶,他們只是感情好喇聊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹦狂,像睡著了一般承疲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸥咖,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音兄世,去河邊找鬼啼辣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛御滩,可吹牛的內(nèi)容都是我干的鸥拧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼削解,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼富弦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氛驮,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤腕柜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后矫废,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盏缤,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年蓖扑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唉铜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡律杠,死狀恐怖潭流,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柜去,我是刑警寧澤灰嫉,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站诡蜓,受9級(jí)特大地震影響熬甫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一椿肩、第九天 我趴在偏房一處隱蔽的房頂上張望瞻颂。 院中可真熱鬧,春花似錦郑象、人聲如沸贡这。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盖矫。三九已至,卻和暖如春击奶,著一層夾襖步出監(jiān)牢的瞬間辈双,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工柜砾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湃望,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓痰驱,卻偏偏與公主長得像证芭,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子担映,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 操作環(huán)境 服務(wù)器:阿里云 CentOS7.3.1611時(shí)間: 20170818 安裝Git 阿里云更換了系統(tǒng)盤废士,不...
    今天_吃_什么閱讀 273評(píng)論 0 1
  • 最近開始折騰 Node.js,跟著慕課網(wǎng)的教程寫了個(gè)電影網(wǎng)站蝇完,于是想把網(wǎng)站部署到服務(wù)器上官硝,本文記錄了我整個(gè)環(huán)境搭建...
    蘇星河閱讀 1,275評(píng)論 1 7
  • 我在一家創(chuàng)業(yè)公司的市場(chǎng)部擔(dān)任市場(chǎng)推廣一職泛源,主要負(fù)責(zé)移動(dòng)端的推廣。之前是傳統(tǒng)行業(yè)的渠道轉(zhuǎn)型而來的忿危,工作一段時(shí)間過后回...
    張希言閱讀 670評(píng)論 2 1
  • 風(fēng)雨漂泊的時(shí)候达箍, 百年人生形形色色。 人總會(huì)改變铺厨,但心從未變 忘不了你的面頰 還在初次相遇的枯樹下待你缎玫。 大雪紛飛...
    莫離殤閱讀 308評(píng)論 0 1
  • 鐵筆銀鉤氣勢(shì)橫, 料峭春風(fēng)吹酒醒解滓。 舉篇不見卿如面赃磨, 緣是卿于花中隱。
    碧波飛龍閱讀 121評(píng)論 0 0