以下是原文翻译成繁體中文的版本:

Node.js - MongoDB Insert

# 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();
});

讓我們分解這段代碼:

  1. 我們正在導入 MongoDB 模塊。
  2. 我們正在指定 MongoDB 服務器運行的 URL。
  3. 我們正在使用 connect 方法來建立連接。
  4. 如果有錯誤,我們會抛出它(就像扔掉一個壞蘋果)。
  5. 如果連接成功,我們會記錄一條消息。
  6. 最後,我們關閉數據庫連接。

將數據插入 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();
  });
});

讓我們剖析這段代碼:

  1. 我們連接到數據庫。
  2. 我們創建一個對象 myobj,其中包含我們要插入的數據。
  3. 我們使用 dbo.collection("customers").insertOne() 將對象插入到 "customers" 集合中。
  4. 如果成功,我們記錄一條消息並關閉連接。

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();
  });
});

這裡發生了什麼:

  1. 我們創建了一個對象數組,每個對象代表我們要插入的文檔。
  2. 我們使用 dbo.collection("customers").insertMany() 一次性插入所有這些對象。
  3. 我們使用 res.insertedCount 記錄插入的文檔數量。

比較 insertOne() 和 insertMany()

為了幫助你更好地理解這兩種方法之間的差異,讓我們看一個對比表:

特性 insertOne() insertMany()
文檔數量 插入單個文檔 插入多個文檔
輸入 接收單個對象 接收對象數組
返回值 返回單個 InsertOneResult 對象 返回 InsertManyResult 對象
性能 為插入多個文檔較慢 為插入多個文檔較快
使用場景 當你需要插入單個文檔時 當你需要一次插入多個文檔時

結論

好了,各位!我們已經成功地導航了使用 Node.js 將數據插入 MongoDB 的水域。記住,insertOne() 就像小心翼翼地把一本書放在你的書架上,而 insertMany() 則像一次性地為整個書架補充書籍。

熟能生巧,所以不要害怕嘗試這些方法。試著插入不同類型的數據,或者看看使用 insertMany() 你一次能插入多少個文檔。也許你甚至會構建下一個大型數據庫驅動的應用程序!

記住,每個專家都曾經是初學者。持續編程,持續學習,最重要的是,持續享受樂趣!直到下一次,快樂編程!

Credits: Image by storyset