程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB基礎知識 >> Node.js 連接 MongoDB

Node.js 連接 MongoDB

編輯:MongoDB基礎知識

Node.js 連接 MongoDB

MongoDB是一種文檔導向數據庫管理系統,由C++撰寫而成。

本章節我們將為大家介紹如何使用 Node.js 來連接 MongoDB,並對數據庫進行操作。

如果你還沒有 MongoDB 的基本知識,可以參考我們的教程:MongoDB 教程。

安裝驅動

本教程使用了淘寶定制的 cnpm 命令進行安裝:

$ cnpm install mongodb

接下來我們來實現增刪改查功能。


數據庫操作( CURD )

與 MySQL 不同的是 MongoDB 會自動創建數據庫和集合,所以使用前我們不需要手動去創建。

插入數據

以下實例我們連接數據庫 runoob 的 site 表,並插入兩條數據:

插入數據

var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; # 數據庫為 runoob var insertData = function(db, callback) { //連接到表 site var collection = db.collection('site'); //插入數據 var data = [{"name":"菜鳥教程","url":"www.runoob.com"},{"name":"菜鳥工具","url":"c.runoob.com"}]; collection.insert(data, function(err, result) { if(err) { console.log('Error:'+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); insertData(db, function(result) { console.log(result); db.close(); }); });

執行以下命令輸出就結果為:

$ node test.js
連接成功!
{ result: { ok: 1, n: 2 },
  ops: 
   [ { name: '菜鳥教程',
       url: 'www.runoob.com',
       _id: 58c25e13a08de70d3b9d4116 },
     { name: '菜鳥工具',
       url: 'c.runoob.com',
       _id: 58c25e13a08de70d3b9d4117 } ],
  insertedCount: 2,
  insertedIds: [ 58c25e13a08de70d3b9d4116, 58c25e13a08de70d3b9d4117 ] }

從輸出結果來看,數據已插入成功。

我們也可以打開 MongoDB 的客戶端查看數據,如:

> show dbs
admin   0.000GB
local   0.000GB
runoob  0.000GB          # 自動創建了 runoob 數據庫
> show tables
site                     # 自動創建了 site 集合(數據表)
> db.site.find()         # 查看集合中的數據
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鳥工具", "url" : "c.runoob.com" }
> 

查詢數據

以下實例檢索 name 為 "菜鳥教程" 的實例:

查詢數據

var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; var selectData = function(db, callback) { //連接到表 var collection = db.collection('site'); //查詢數據 var whereStr = {"name":'菜鳥教程'}; collection.find(whereStr).toArray(function(err, result) { if(err) { console.log('Error:'+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); selectData(db, function(result) { console.log(result); db.close(); }); });

執行以下命令輸出就結果為:

連接成功!
[ { _id: 58c25f300cd56e0d7ddfc0c8,
    name: '菜鳥教程',
    url: 'www.runoob.com' } ]

更新數據

我們也可以對數據庫的數據進行修改,以下實例將 name 為 "菜鳥教程" 的 url 改為 https://www.runoob.com:

更新數據

var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; var updateData = function(db, callback) { //連接到表 var collection = db.collection('site'); //更新數據 var whereStr = {"name":'菜鳥教程'}; var updateStr = {$set: { "url" : "https://www.runoob.com" }}; collection.update(whereStr,updateStr, function(err, result) { if(err) { console.log('Error:'+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); updateData(db, function(result) { console.log(result); db.close(); }); });

執行成功後,進入 mongo 管理工具查看數據已修改:

> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "https://www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鳥工具", "url" : "c.runoob.com" }

刪除數據

以下實例將 name 為 "菜鳥工具" 的數據刪除 :

刪除數據

var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; var delData = function(db, callback) { //連接到表 var collection = db.collection('site'); //刪除數據 var whereStr = {"name":'菜鳥工具'}; collection.remove(whereStr, function(err, result) { if(err) { console.log('Error:'+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); delData(db, function(result) { console.log(result); db.close(); }); });

執行成功後,進入 mongo 管理工具查看數據已刪除:

> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "https://www.runoob.com" }
> 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved