1. 程式人生 > >node.js連線mongoDB資料庫

node.js連線mongoDB資料庫

前面已經講了mongoDB資料庫的安裝和使用,今天來研究一下node.js中如何連線和使用mongoDB資料庫。

方法一:mongoose連線

一、配置mongose

增加mongose類庫
npm install mongoose

二、利用mongoose連線mongoDB資料庫

//引入模組
var mongoose = require('mongoose');
//連線資料庫
mongoose.connect('mongodb://localhost:27017/runoob');
//得到資料庫連線控制代碼
var db = mongoose.connection;
//通過資料庫連線控制代碼,監聽mongoose資料庫成功的事件
db.on('open',function(err){
	if(err){
		console.log('資料庫連線失敗');
		throw err;
	}
	console.log('資料庫連線成功')
})

結果:
在這裡插入圖片描述

三、利用mongoose操作mongoDB資料庫

增加資料
1.定義表結構

var userModel = new mongoose.Schema({
	id:Number,
	name:String,
	age:Number,
	sex:String
})

2.將表的資料結構與表關聯起來

var userModel = mongoose.model('userList',userModel,'userList');

3.編寫資料

var userList = [
	{id:1,name:'小明',age:14,sex:'男'},
	{id:2,name:'小紅',age:12,sex:'女'},
	{id:3,name:'小花',age:16,sex:'女'},
	{id:4,name:'小白',age:11,sex:'男'}
]

4.向表內新增資料

userModel.insertMany(userList,(err,result) => {
	if(err){
		console.log('資料新增失敗');
		throw err;
	}
	console.log('資料新增成功:',result);
})

5.匯出資料

module.exports={
	userModel:userModel
}

6.檢視結果
在這裡插入圖片描述
刪除資料

userModel.deleteOne({},(err,result) => {
	if(err){
		console.log('刪除資料成功');
		throw err;
	}
	console.log("刪除資料成功");
})

結果:
在這裡插入圖片描述

方法二:MongoClient連線

//node.js操作mongoDB資料庫
/**
1.安裝mongodb
	npm install mongodb --save
*/

/**
2.引入mongodb下面的MongoClient
*/
var MongoClient = require('mongodb').MongoClient;

/**
3.定義資料庫連線的地址,以及配置資料庫
*/
var url = 'mongodb://localhost:27017/';
var dbname = 'test';

/**
4.node.js連線資料庫
*/
MongoClient.connect(url,function(err,client){
	if(err){
		console.log('資料庫連線失敗');
		return false;
	}
	console.log('資料庫連線成功')
	const db = client.db(dbname); //資料庫db物件
	//新增資料
	db.collection('col').insertOne({'name':'yixuan','age':1},function(error){
		if(error){
			console.log('新增失敗');
			return false;
		}
		console.log('新增成功')
		//關閉資料庫
		client.close();
	})
	//刪除資料
	db.collection('col').deleteOne({'title':'banan'},function(error){
		if(error){
			console.log('刪除失敗');
		}
		console.log('刪除成功');
		//關閉資料庫
		client.close();
	})
	//修改資料
	db.collection('col').updateOne({'title':'fruit'},{$set:{'title':'傷心'}},function(error){
		if(error){
			console.log('修改失敗');
			return false;
		}
		console.log('修改成功')
		//關閉資料庫
		client.close();
	})
	//查詢資料
	var result = [];
	var userRel = db.collection('col').find();
	userRel.each(function(error,data){
		if(error){
			console.log('查詢錯誤');
			return false;
		}
		console.log(data);
		client.close();
	})
	
})