以下是原文翻译成繁體中文的版本:
# Node.js - MongoDB 插入
你好,有志者!今天,我們將踏上一段令人振奮的旅程,進入 Node.js 和 MongoDB 的世界。具體來說,我們將探索如何使用 Node.js 將數據插入 MongoDB。別擔心如果你是新手——我會像祖母教孫子第一次烘餅乾一樣,耐心地指導你每一步。
## MongoDB 是什麼?
在我們深入數據插入的細節之前,讓我們花一會兒時間了解 MongoDB 是什麼。想像你有一個巨大的數字文件櫃,你可以在其中存儲各種各樣的信息。這就是 MongoDB 的本質——一個以灵活的 JSON-like 格式(BSON,即二進制 JSON)存儲數據的數據庫。
## 設置我們的環境
首先,我們需要確保我們的電腦上已經安裝了 Node.js 和 MongoDB。如果你還沒有這麼做,這就像嘗試無烤箱或食材烘烤一樣!前往 Node.js 和 MongoDB 的官方網站下載並安裝它們。
當你安裝好它們後,我們需要為 Node.js 安裝 MongoDB 驅動。打開你的終端(別害怕,這只是與你的電腦進行文字交流的一種方式)並輸入:
npm install mongodb
這個命令就像告訴你的電腦去商店為你購買 MongoDB 包一樣。
## 連接到 MongoDB
在我們能夠插入任何數據之前,我們需要建立到我們 MongoDB 數據庫的連接。這是我們如何做到這一點:
```javascript
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("數據庫已創建!");
db.close();
});
讓我們分解這段代碼:
- 我們正在導入 MongoDB 模塊。
- 我們正在指定 MongoDB 服務器運行的 URL。
- 我們正在使用
connect
方法來建立連接。 - 如果有錯誤,我們會抛出它(就像扔掉一個壞蘋果)。
- 如果連接成功,我們會記錄一條消息。
- 最後,我們關閉數據庫連接。
將數據插入 MongoDB
現在,我們已經設置好了連接,讓我們看看插入 MongoDB 的兩種主要方法:insertOne()
和 insertMany()
。
insertOne() 方法
insertOne()
方法就像小心翼翼地把一本書放在你的書架上。它允許我們將單個文檔插入到集合中。這是它如何工作:
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = { name: "John Doe", address: "Highway 37" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 個文檔已插入");
db.close();
});
});
讓我們剖析這段代碼:
- 我們連接到數據庫。
- 我們創建一個對象
myobj
,其中包含我們要插入的數據。 - 我們使用
dbo.collection("customers").insertOne()
將對象插入到 "customers" 集合中。 - 如果成功,我們記錄一條消息並關閉連接。
insertMany() 方法
現在,如果你想要一次添加多本書到你的書架上呢?這就是 insertMany()
方法派上用場的地方。這個方法允許我們一次性插入多個文檔:
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = [
{ name: 'John', address: 'Highway 71'},
{ name: 'Peter', address: 'Lowstreet 4'},
{ name: 'Amy', address: 'Apple st 652'}
];
dbo.collection("customers").insertMany(myobj, function(err, res) {
if (err) throw err;
console.log("插入的文檔數量: " + res.insertedCount);
db.close();
});
});
這裡發生了什麼:
- 我們創建了一個對象數組,每個對象代表我們要插入的文檔。
- 我們使用
dbo.collection("customers").insertMany()
一次性插入所有這些對象。 - 我們使用
res.insertedCount
記錄插入的文檔數量。
比較 insertOne() 和 insertMany()
為了幫助你更好地理解這兩種方法之間的差異,讓我們看一個對比表:
特性 | insertOne() | insertMany() |
---|---|---|
文檔數量 | 插入單個文檔 | 插入多個文檔 |
輸入 | 接收單個對象 | 接收對象數組 |
返回值 | 返回單個 InsertOneResult 對象 | 返回 InsertManyResult 對象 |
性能 | 為插入多個文檔較慢 | 為插入多個文檔較快 |
使用場景 | 當你需要插入單個文檔時 | 當你需要一次插入多個文檔時 |
結論
好了,各位!我們已經成功地導航了使用 Node.js 將數據插入 MongoDB 的水域。記住,insertOne()
就像小心翼翼地把一本書放在你的書架上,而 insertMany()
則像一次性地為整個書架補充書籍。
熟能生巧,所以不要害怕嘗試這些方法。試著插入不同類型的數據,或者看看使用 insertMany()
你一次能插入多少個文檔。也許你甚至會構建下一個大型數據庫驅動的應用程序!
記住,每個專家都曾經是初學者。持續編程,持續學習,最重要的是,持續享受樂趣!直到下一次,快樂編程!
Credits: Image by storyset