1. 程式人生 > 其它 >nodejs連線mongodb

nodejs連線mongodb

首先我們先去 mongodb官網 註冊一個賬號,然後申請一個免費的伺服器,直接用qq郵箱註冊即可。

1.填寫相對應的註冊資訊,然後去qq郵箱確認下。

2.選擇伺服器,這邊我們選擇 FREE 就可以了,畢竟自己學習的話(521M)已經夠用了。然後我們點選 Create,進行下步操作。

3. 選擇伺服器,建議選擇香港、臺灣的伺服器。點選Create Cluster,建立伺服器。

4. 接下來會跳轉到這個頁面,記得左邊選擇Databases ,這樣就可以看到我們建立的伺服器了(這裡中間文字提示伺服器會在1-3分鐘建立完成)。

 如果想建立新的伺服器可以點選右邊的Create,但是新的伺服器就需要花錢了。

等待幾分鐘後就可以看到我們自己建立的伺服器了。然後我們點選Connect,會出現選擇連線的彈框。

5. 點選Connect your appliction 就可以看到用nodejs 連線伺服器的例子。

點選 connect using MongoDB Compass , 可以看到使用MongoDB Compass連線伺服器的金鑰,密碼是自己賬號的密碼,記得把 '<password>' 替換成自己的密碼。

6. 沒有MongoDB Compass ,先去下載MongoDB Compass。可以在上一張圖中選擇 I do not have MongoDB Compass ,那麼就會提供下載連結,根據自己的系統選擇對應的安裝包。

  然後開啟MongoDB Compass 在下方輸入金鑰,點選Connect 即可接連到我們的伺服器,並且可以對伺服器中的資料庫進行操作。

我們開始使用nodejs連線到資料庫,並進行一些簡單的操作。這裡使用的是mongoose 進行資料庫操作。

1.連線資料庫,在node環境下執行,控制檯輸出 connect success 就表示資料庫連線成功了。需要注意的是,如果我們的資料

const mongoose = require('mongoose');

// 資料庫名稱
const dbName = 'nodeStudy'
// 連線伺服器的連結  把連結換成自己的伺服器連結就可以了。
const uri = `mongodb+srv://lvkeming:<password>@cluster0.qkwmi.mongodb.net/${dbName}?retryWrites=true&w=majority`;
mongoose.connect(uri, (err) => {
	if (err) {
		console.log(err);
		return
	}
	console.log('connect success');
});

2.一些簡單的增刪改查

const mongoose = require('mongoose');

const dbName = 'nodeStudy'
const uri = `mongodb+srv://lvkeming:<password>@cluster0.qkwmi.mongodb.net/${dbName}?retryWrites=true&w=majority`;
mongoose.connect(uri, (err) => {
	if (err) {
		console.log(err);
		return
	}
	console.log('connect success');
});


/**
 *  資料校驗
 * 	required 表示這個資料必須傳入
 * 	max 最大值
 * 	min 最小值
 * 	enum 列舉型別,要求資料必須滿足列舉值
 * 	match 增加的資料必須符合 match(正則)的規則
 * 	maxlength 最大長度
 * 	minlength 最小長度
 *  validate 自定義校驗,返回bool型別
 */

// 這邊定義了 nodeStudy 裡面user表裡面的欄位型別,以及一些資料校驗
const UserSchema = new mongoose.Schema({
	username: {
		type: String,
		unique: true
	},
	password: String,
	name: String,
	age: Number,
	sex: String,
	tel: Number,
	status: {
		// 如果不傳status 那麼status預設值為1
		type: Number,
		default: 1
	}
});

// 這邊第三個引數 才是和具體的表對應,這裡連線到了 user 這個表 const UserModel = mongoose.model('User', UserSchema, 'user'); // 查詢資料,第一個引數是查詢的條件 // 第二個引數是一個回撥函式,返回 err錯誤資訊 和 data查詢的結果 // 該語句查詢 username 為 lisi 的使用者 UserModel.find( { "username": "lisi" }, (err, data) => { if (err) throw err console.log(data); } ) // 增加資料 let addUser = UserModel({ username: 'lisi11', password: '12345678', name: '李四', age: 34, sex: '男', tel: 10086344567 }) addUser.save((err, res) => { if (err) throw err console.log(res); }) // 刪除資料 第一個引數是查詢的條件 // 第二個引數是一個回撥函式,返回 err錯誤資訊 和 res刪除結果 UserModel.deleteOne( { 'username': 'lisi11' }, (err, res) => { if (err) throw err console.log(res); } ) // 更新資料 第一個引數是查詢的條件 。 // 第二個引數是更新的資料,更新資料是合併更新。 // 第三個引數是一個回撥函式,返回 err錯誤資訊 和 res未更新的資料 UserModel.updateOne( { 'username': 'lisi11' }, { 'age': 45 }, (err, res) => { if (err) throw err console.log(res); } )