Node.js MongoDB 삽입


컬렉션에 삽입

MongoDB에서 호출 되는 레코드 또는 문서insertOne() 를 컬렉션에 삽입하기 위해 메서드를 사용합니다.

MongoDB 의 문서 는 MySQL 의 레코드 와 동일합니다.

메소드 의 첫 번째 매개변수는 insertOne()삽입하려는 문서의 각 필드 이름과 값을 포함하는 객체입니다.

또한 오류 또는 삽입 결과에 대해 작업할 수 있는 콜백 함수를 사용합니다.

예시

"customers" 컬렉션에 문서 삽입:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost: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 document inserted");
    db.close();
  });
});

위의 코드를 "demo_mongodb_insert.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_mongodb_insert.js" 실행

C:\Users\Your Name>node demo_mongodb_insert.js

다음과 같은 결과를 얻을 수 있습니다.

1 document inserted

참고: 존재하지 않는 컬렉션에 문서를 삽입하려고 하면 MongoDB가 자동으로 컬렉션을 생성합니다.



여러 문서 삽입

MongoDB의 컬렉션에 여러 문서를 삽입하기 위해 insertMany()메서드를 사용합니다.

메소드 의 첫 번째 매개변수는 insertMany()삽입하려는 데이터를 포함하는 객체의 배열입니다.

또한 오류 또는 삽입 결과에 대해 작업할 수 있는 콜백 함수를 사용합니다.

예시

"customers" 컬렉션에 여러 문서 삽입:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost: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("Number of documents inserted: " + res.insertedCount);
    db.close();
  });
});

위의 코드를 "demo_mongodb_insert_multiple.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_mongodb_insert_multiple.js" 실행

C:\Users\Your Name>node demo_mongodb_insert_multiple.js

다음과 같은 결과를 얻을 수 있습니다.

Number of documents inserted: 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 필드

필드를 지정하지 않으면 _idMongoDB가 필드를 추가하고 각 문서에 고유한 ID를 할당합니다.

위의 예에서는 _id필드가 지정되지 않았으며 결과 개체에서 볼 수 있듯이 MongoDB는 각 문서에 대해 고유한 _id를 할당했습니다.

필드를 지정하는 경우_id은 각 문서에 대해 고유해야 합니다.

예시

_id지정된 필드 와 함께 "products" 테이블에 세 개의 레코드를 삽입 합니다.

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost: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\Your Name>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 ]
}