當前位置:
首頁 > 知識 > 詳解node + mongoDb(mongoDb安裝、運行,在node中連接增刪改查)

詳解node + mongoDb(mongoDb安裝、運行,在node中連接增刪改查)

一、序言

這次主要聊聊 node 和 mongoDb 。 先說明一下技術棧 node + express + mongoose + mongoDb。這篇博客,主要講述 mongoDb 的下載 、安裝 、 配置 、 運行 以及如何在 node 項目中引入 mongoose 並 鏈接 mongoDb 操作資料庫,最後再附帶幾個簡單 創建 資料庫、集合、域的實例。

二、目錄

1、 下載、安裝 mongoDb

2、 配置、運行 mongoDb

3、 node項目中 鏈接 mongoDb

4、 node項目中對 mongoDb 實現 資料庫 集合 域的創建、編輯等操作

三、下載、安裝 mongoDb

官方下載鏈接: https://www.mongodb.com/download-center#community

下載 Windows 64-bit x64 msi 格式的,完事直接傻瓜式安裝。或者你也可以選擇 customs 自定義安裝,去選擇一些路徑啥的

四、配置、運行 mongoDb

在任意沒有中文的目錄下新建文件夾,如c:data,在文件夾下存放MongoDB資料庫文件與日誌文件,如: ps: 當然你也可以不配置
  c:dbDatadb用於存放mongodb的數據文件
  c:dbDatalog用於存放mongodb的日誌文件

創建配置文件
  打開MongoDB的安裝目錄如「C:Program FilesMongoDBServer4in」,並在此目錄下新建一個mongo.config文件,文件內容如下:
##資料庫目錄##
dbpath=C:dbDatadb
##日誌輸出文件##
logpath=C:dbDatalogdb.log

在當前目錄下,即 bin 目錄下 打開命令行 輸入 mongod --config "C:Program FilesMongoDBServer4inmongo.config" --install 回車

添加環境變數

在計算機->屬性->高級設置->環境變數->系統變數->Path 中加入"C:Program FilesMongoDBServer4in"路徑。

然後在 bin 目錄下 雙擊 mongo.exe 啟動 MongoDB 服務

然後命令行 net start mongodb 就OK了

五、node項目中 鏈接 mongoDb

比較簡單,代碼如下:

const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/mongodb");
mongoose.connection.on("connected", function(e) {
console.log("connect success");
});
mongoose.connection.on("error", function(err) {
console.error("MongoDB connection error: " + err);
process.exit(1);
});
mongoose.Promise = Promise;

直接connect最簡單的鏈接, MONGODB://IP:埠號/資料庫名稱, 注意格式和位置,mongoose 會判斷,有這個資料庫會直接連接,沒有的話,會創建,再連接。connection.on 綁定上連接成功/失敗的回調函數,直觀的的告訴我們有沒有連接成功。如果失敗,檢查IP和埠號,再檢查MongoDB服務是否真的啟動了。

connect參數很多,一般項目中還是需要配置一下的,這個根據大家具體項目來配置了。比如:

module.exports = {
production: {
uri: "mongodb://localhost/db",
option: {
autoIndex: true,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000,
poolSize: 10,
bufferMaxEntries: 0
},
},
development: {
uri: "mongodb://localhost/db-dev",
option: {
autoIndex: true,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000,
poolSize: 10,
bufferMaxEntries: 0
},
},
test: {
uri: "mongodb://localhost/db-test",
option: {
autoIndex: true,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000,
poolSize: 10,
bufferMaxEntries: 0
},
}}[process.env.NODE_ENV || "development"]

這樣就連接好了。

六、node項目中對 mongoDb 實現 資料庫 集合 域的創建等操作

以上步驟我們就已經成功安裝了MongoDB,並在node項目中成功連接 MongoDB 了,而且 mongodb://localhost/db 這個db就是你的資料庫名稱,在鏈接的時候,就已經將資料庫建好了,接下來是對集合和域的創建。

直接舉個例子:

新建一個 MongoDB 的集合

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const ObjectId = Schema.ObjectId;
const schema = new Schema({
name: { type: String, default: "" }, // 數據名稱
data: { type: String, default: "" }, // 數據內容
createTime: { type: Date, default: Date.now },
})
module.exports = mongoose.model("SaveDate", schema);

寫 api 對集合進行操作

const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
const SaveDate = require("../../models/saveDate.mongo")
router.post("/test/saveData", async (req, res, next) => {
const body = req.body;
try {
if (!body.name){
res.status(400).json({
msg: "name is required"
});
}else if (!body.data){
res.status(400).json({
msg: "data is required"
});
}else {
const saveDate = await SaveDate.create({
name: body.name,
data: JSON.stringify(body.data)
});
res.json({
status: true,
saveDate,
});
}
}catch (e) {
console.log(e)
res.status(500).json({
status: false,
error: e,
});
}
});

mongoose.model Mongoose創建集合指令,他的參數是集合名稱,以及一個Schema。將Schem映射到當前新建的集合中。也就是我們所謂的創建表啦。
mongoose.Schema Mongoose創建數據Schema指令,存放數據、定義數據類型。這個就是我們在sql裡面 定義表中欄位
通過這2步,就算新建好一個集合了,但是現在他是沒數據的,接下來需要對集合進行 增刪改查 的操作。

//集合中添加數據
const saveDate = await SaveDate.create({
name: body.name,
data: JSON.stringify(body.data)
});
// 查找集合的數據
const list = await SaveDate.find(condition).skip(pageSize * (current - 1)).limit(pageSize);
// 更新集合數據
await Instruction.update({ _id: body._id }, {
$set: set
});
// 刪除集合數據
await Instruction.remove({ _id: body._id });

以上是最基礎的 增、刪、改、查 指令,至於更加詳細的 Mongoose 指令,這裡就不詳說了。根據你的需要現在已經實現最基礎的操作資料庫操作了。
七、 小結
這一套 node + express + Mongoose + MongoDB 技術棧,當中對 資料庫 的操作部分就到此結束了。下面稍微總結一下,流程大致如下:
    首先下載、安裝、配置、啟動 MongoDB 服務
     然後,運行node服務,並在代碼中配置、連接MongoDB服務
     最後,在 api 中,對集合進行操作
註: 差點忘記了,最後給大家安利一個 MongoDB 的桌面化軟體,簡單實用,官方下載鏈接: https://robomongo.org/download
資料庫還是有可視化工具方便。
  這篇博客講的不深,主要是給初學者提供一個學習 node + MongoDB 自己搭建api服務的學習方向。我剛開始接觸到時候沒少走彎路。希望這篇文章能幫到大家。

詳解node + mongoDb(mongoDb安裝、運行,在node中連接增刪改查)

打開今日頭條,查看更多精彩圖片
喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Window中MySQL實現遠程訪問
小白推演HIVE資料庫的優化思路

TAG:程序員小新人學習 |