選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Node.js MongoDB 插入


插入到集合

要將一條記錄(在 MongoDB 中稱為“文件”)插入到集合中,我們使用 insertOne() 方法。

MongoDB 中的文件與 MySQL 中的記錄相同

insertOne() 方法的第一個引數是一個物件,其中包含要插入的文件中每個欄位的名稱和值。

它還接受一個回撥函式,您可以在其中處理任何錯誤或插入結果。

示例

在“customers”集合中插入一個文件

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = { name: "Company Inc", address: "Highway 37" };
  dbo.collection("customers").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("插入了 1 個文件");
    db.close();
  });
});
執行示例 »

將上述程式碼儲存到名為“demo_mongodb_insert.js”的檔案中並執行該檔案

執行“demo_mongodb_insert.js”

C:\Users\您的使用者名稱>node demo_mongodb_insert.js

這將產生以下結果:

插入了 1 個文件

注意:如果您嘗試在不存在的集合中插入文件,MongoDB 將自動建立該集合。



插入多個文件

要在 MongoDB 的集合中插入多個文件,我們使用 insertMany() 方法。

insertMany() 方法的第一個引數是一個物件陣列,其中包含您要插入的資料。

它還接受一個回撥函式,您可以在其中處理任何錯誤或插入結果。

示例

在“customers”集合中插入多個文件

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { name: 'John', address: 'Highway 71'},
    { name: 'Peter', address: 'Lowstreet 4'},
    { name: 'Amy', address: 'Apple st 652'},
    { name: 'Hannah', address: 'Mountain 21'},
    { name: 'Michael', address: 'Valley 345'},
    { name: 'Sandy', address: 'Ocean blvd 2'},
    { name: 'Betty', address: 'Green Grass 1'},
    { name: 'Richard', address: 'Sky st 331'},
    { name: 'Susan', address: 'One way 98'},
    { name: 'Vicky', address: 'Yellow Garden 2'},
    { name: 'Ben', address: 'Park Lane 38'},
    { name: 'William', address: 'Central st 954'},
    { name: 'Chuck', address: 'Main Road 989'},
    { name: 'Viola', address: 'Sideway 1633'}
  ];
  dbo.collection("customers").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log("插入的文件數量: " + res.insertedCount);
    db.close();
  });
});
執行示例 »

將上述程式碼儲存到名為“demo_mongodb_insert_multiple.js”的檔案中並執行該檔案

執行“demo_mongodb_insert_multiple.js”

C:\Users\您的使用者名稱>node demo_mongodb_insert_multiple.js

這將產生以下結果:

插入的文件數量: 14

結果物件

執行 insertMany() 方法時,會返回一個結果物件。

結果物件包含有關插入如何影響資料庫的資訊。

上述示例返回的物件如下:

{
  result: { ok: 1, n: 14 },
  ops: [
    { name: 'John', address: 'Highway 71', _id: 58fdbf5c0ef8a50b4cdd9a84 },
    { name: 'Peter', address: 'Lowstreet 4', _id: 58fdbf5c0ef8a50b4cdd9a85 },
    { name: 'Amy', address: 'Apple st 652', _id: 58fdbf5c0ef8a50b4cdd9a86 },
    { name: 'Hannah', address: 'Mountain 21', _id: 58fdbf5c0ef8a50b4cdd9a87 },
    { name: 'Michael', address: 'Valley 345', _id: 58fdbf5c0ef8a50b4cdd9a88 },
    { name: 'Sandy', address: 'Ocean blvd 2', _id: 58fdbf5c0ef8a50b4cdd9a89 },
    { name: 'Betty', address: 'Green Grass 1', _id: 58fdbf5c0ef8a50b4cdd9a8a },
    { name: 'Richard', address: 'Sky st 331', _id: 58fdbf5c0ef8a50b4cdd9a8b },
    { name: 'Susan', address: 'One way 98', _id: 58fdbf5c0ef8a50b4cdd9a8c },
    { name: 'Vicky', address: 'Yellow Garden 2', _id: 58fdbf5c0ef8a50b4cdd9a8d },
    { name: 'Ben', address: 'Park Lane 38', _id: 58fdbf5c0ef8a50b4cdd9a8e },
    { name: 'William', address: 'Central st 954', _id: 58fdbf5c0ef8a50b4cdd9a8f },
    { name: 'Chuck', address: 'Main Road 989', _id: 58fdbf5c0ef8a50b4cdd9a90 },
    { name: 'Viola', address: 'Sideway 1633', _id: 58fdbf5c0ef8a50b4cdd9a91 } ],
  insertedCount: 14,
  insertedIds: [
    58fdbf5c0ef8a50b4cdd9a84,
    58fdbf5c0ef8a50b4cdd9a85,
    58fdbf5c0ef8a50b4cdd9a86,
    58fdbf5c0ef8a50b4cdd9a87,
    58fdbf5c0ef8a50b4cdd9a88,
    58fdbf5c0ef8a50b4cdd9a89,
    58fdbf5c0ef8a50b4cdd9a8a,
    58fdbf5c0ef8a50b4cdd9a8b,
    58fdbf5c0ef8a50b4cdd9a8c,
    58fdbf5c0ef8a50b4cdd9a8d,
    58fdbf5c0ef8a50b4cdd9a8e,
    58fdbf5c0ef8a50b4cdd9a8f
    58fdbf5c0ef8a50b4cdd9a90,
    58fdbf5c0ef8a50b4cdd9a91 ]
}

屬性值可以這樣顯示:

示例

返回插入的文件數量

console.log(res.insertedCount)

這將產生以下結果:

14

_id 欄位

如果您未指定 _id 欄位,則 MongoDB 將為您新增一個,併為每個文件分配一個唯一 ID。

在上面的示例中,沒有指定 _id 欄位,正如您從結果物件中看到的那樣,MongoDB 為每個文件分配了一個唯一的 _id。

如果您確實指定了 _id 欄位,則該值對於每個文件都必須是唯一的。

示例

在“products”表中插入三條記錄,並指定 _id 欄位。

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { _id: 154, name: 'Chocolate Heaven'},
    { _id: 155, name: 'Tasty Lemon'},
    { _id: 156, name: 'Vanilla Dream'}
  ];
  dbo.collection("products").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log(res);
    db.close();
  });
});
執行示例 »

將上述程式碼儲存到名為“demo_mongodb_insert_id.js”的檔案中並執行該檔案

執行“demo_mongodb_insert_id.js”

C:\Users\您的使用者名稱>node demo_mongodb_insert_id.js

這將產生以下結果:

{
  result: { ok: 1, n: 3 },
  ops: [
    { _id: 154, name: 'Chocolate Heaven },
    { _id: 155, name: 'Tasty Lemon },
    { _id: 156, name: 'Vanilla Dream } ],
  insertedCount: 3,
  insertedIds: [
    154,
    155,
    156 ]
}

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援