溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node與Mongodb實戰

發布時間:2020-06-07 02:36:52 來源:網絡 閱讀:753 作者:Cindere_liuqiqi 欄目:數據庫

在聽陳鴻宇的《理想三旬》。好聽~


上兩篇博文中提到了在Mac下Mongodb的安裝與連接,這次我們來看看如何通過Node操作Mongodb。


PS:本文中的數據集合采用上篇博文中'test'庫中的"mycollection"。


一:安裝MongoDB包

使用Node中的mongodb模塊,需要先安裝哦~打開終端,輸入如下命令~

npm install mongodb

二:數據庫連接與斷開

1:引入mongodb模塊

var mongo = require("mongodb");

2:創建MongoDB數據庫的服務器對象

var server = new mongo.Server(host,port,[options]);

說明:host:服務器所在地址,默認本地localhost;port:服務器端口號,默認27017;options:可選配置參數。

3:創建MongoDB的db對象

var db = new mongo.Db(databasename,server,[options]);

說明:databasename:數據庫名,這里我們使用上篇的“test”數據庫;server:服務器對象;options:可選配置參數。

4:執行db的open方法,連接數據庫

db.open(callback(err,db));

說明:callback回調方法,如果連接失敗,將拋出err錯誤,連接數據庫成功,會返回db對象。

5:執行db的close方法,斷開數據庫連接

db.close();

說明:關閉數據庫連接時,將會觸發監聽的close事件,該事件有err和db兩參數,意義同上。

function(err,db){

    //回調方法

}

附:代碼片段。將下述代碼保存在testMongo.js文件中。

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.close();

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"mongod"打開mongodb。

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

關閉數據庫連接

三:數據集合

MongoDb操作的是數據集合?。?!數據的操作就是數據集合的操作。

db.collection(collectionname,[options],callback(err,collection));

說明:collectionname:數據庫中數據集合名字,此處是上節的"mycollection";options:可選配置參數。callback:連接的回調方法,會有連接出錯的err參數和連接成功的collecction參數。

附:代碼片段。保存下述文件到testMongo.js中。

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.collection('mycollection',function(err,collection){

if(err){

throw err;

console.log("連接數據集合出錯");

}else{

console.log("成功連接數據集合");

db.close();

}

});

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

成功連接數據集合

關閉數據庫連接

四:MongoDb-增

數據集合的insert方法,實現添加數據的操作。

collection.insert(docs,[options],[callback(err,docs)])

說明:docs:要插入的數據;options:可選配置參數??蛇xcallback:插入的回調方法,插入出錯的err參數和插入成功時的docs(插入的數據)參數。

附:代碼片段。保存下述文件到testMongo.js中。--在test庫的mycollection數據集合中插入5條Cailala

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.collection('mycollection',function(err,collection){

if(err){

throw err;

console.log("連接數據集合出錯");

}else{

console.log("成功連接數據集合");

//insert

for(var i = 1;i<6;i++){

collection.insert({'name':'Cailala'+i},function(err,docs){

console.log(docs);

db.close();

});

}

}

});

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

成功連接數據集合

{ result: { ok: 1, n: 1 },

  ops: [ { name: 'Cailala1', _id: 57a1fb5292764dbc5736dcd9 } ],

  insertedCount: 1,

  insertedIds: [ 57a1fb5292764dbc5736dcd9 ] }

關閉數據庫連接

{ result: { ok: 1, n: 1 },

  ops: [ { name: 'Cailala2', _id: 57a1fb5292764dbc5736dcda } ],

  insertedCount: 1,

  insertedIds: [ 57a1fb5292764dbc5736dcda ] }

{ result: { ok: 1, n: 1 },

  ops: [ { name: 'Cailala3', _id: 57a1fb5292764dbc5736dcdb } ],

  insertedCount: 1,

  insertedIds: [ 57a1fb5292764dbc5736dcdb ] }

{ result: { ok: 1, n: 1 },

  ops: [ { name: 'Cailala4', _id: 57a1fb5292764dbc5736dcdc } ],

  insertedCount: 1,

  insertedIds: [ 57a1fb5292764dbc5736dcdc ] }

{ result: { ok: 1, n: 1 },

  ops: [ { name: 'Cailala5', _id: 57a1fb5292764dbc5736dcdd } ],

  insertedCount: 1,

  insertedIds: [ 57a1fb5292764dbc5736dcdd ] }

五:MongoDb-查

數據集合的find方法,實現查詢數據的操作。

collection.find(selector,[options]).toArray(callback(err,docs))

說明:selector:查詢條件;options:可選配置參數。find方法返回的是Cursor游標對象,該對象的toArray方法將返回查詢到的所有數據文檔,參數callback:查詢的回調方法,查詢出錯的err參數和查詢成功時的docs(查詢出的數據)參數。

附:代碼片段。保存下述文件到testMongo.js中。--查詢數據集合中name是Cailala1的數據

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.collection('mycollection',function(err,collection){

if(err){

throw err;

console.log("連接數據集合出錯");

}else{

console.log("成功連接數據集合");

//find

collection.find({name:"Cailala1"},{fields:{name:1,_id:0}}).toArray(function(err,docs){

if(err) throw err;

else 

console.log(docs);

db.close();

});

}

});

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

成功連接數據集合

[ { name: 'Cailala1' } ]

關閉數據庫連接

六:MongoDb-改

數據集合的update方法,實現修改數據的操作。

collection.update(selector,documents,[optios],[callback(err,resu)])

說明:selector:需要更新的數據文檔;documents:用于更新的文檔;options:可選配置參數;可選callback:修改的回調方法,修改出錯的err參數和修改成功時的result(成功修改的數據條數)參數。

附:代碼片段。保存下述文件到testMongo.js中。--修改name是Cailala1為liujinhuan,并查詢輸出。

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.collection('mycollection',function(err,collection){

if(err){

throw err;

console.log("連接數據集合出錯");

}else{

console.log("成功連接數據集合");

// update

collection.update({name:"Cailala1"},{name:"liujinhuan"},function(err,res){

if(err){

throw err;

}else{

console.log("成功更新 "+JSON.parse(res).n+"  條數據");

collection.find({},{fields:{name:1,_id:0}}).toArray(function(err,docs){

if(err) 

throw err;

else 

console.log(docs);

db.close();

});

}

});

}

});

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

成功連接數據集合

成功更新 1  條數據

[ { name: 'liujinhuan' },

  { name: 'Cailala2' },

  { name: 'Cailala3' },

  { name: 'Cailala4' },

  { name: 'Cailala5' } ]

關閉數據庫連接

七:MongoDb-刪

數據集合的remove方法,實現刪除數據的操作。

collection.remove([selector],[options],[callback])

說明:可選selector:刪除的條件,不指定則刪除全部;可選options:配置參數;可選callback:刪除的回調方法,刪除出錯的err參數和刪除成功時的result(成功修改的數據條數)參數。

附:代碼片段。保存下述文件到testMongo.js中。

var mongo = require("mongodb");

var host = "localhost";

var port = "27017";


var server = new mongo.Server(host,port,{auto_reconnect:true});


var db = new mongo.Db("test",server,{safe:true});


db.open(function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("成功建立數據庫連接");

db.collection('mycollection',function(err,collection){

if(err){

throw err;

console.log("連接數據集合出錯");

}else{

console.log("成功連接數據集合");

//remove

collection.remove({name:"liujinhuan"},function(err,res){

if(err){

throw err;

}else{

console.log("成功刪除 "+JSON.parse(res).n+"  條數據");

collection.find({},{fields:{name:1,_id:0}}).toArray(function(err,docs){

if(err) 

throw err;

else 

console.log(docs);

db.close();

});

}

});

}

});

}

});


db.on("close",function(err,db){

if(err){

throw err;

console.log("連接數據庫出錯");

}else{

console.log("關閉數據庫連接")

}

})

新開終端,輸入"node testMongo.js",看到如下結果,就成功啦。

 testNode  node testMongo.js

成功建立數據庫連接

成功連接數據集合

成功刪除 1  條數據

[ { name: 'Cailala2' },

  { name: 'Cailala3' },

  { name: 'Cailala4' },

  { name: 'Cailala5' } ]

關閉數據庫連接



以上就是總結的Node操作的Mongodb。其中的options都是一些可以配置的參數~這里只是基礎的用法啦~歡迎吐槽


Mac不能上傳結果的截圖~又不能上傳實例代碼~好尷尬呀~


聽不懂《理想三旬》。但還是在聽~直到聽吐為止吧~

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女