세팅
터미널에 $ npm install mongodb --save 명령어 입력을 통해 연결환경 구축하고
터미널이 가리키고 있는 위치에 위와 같은 test.js파일을 생성한다.
//test.js
var MongoClient = require('mongodb').MongoClient, assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/test';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected successfully to server");
res = db.collection('users').find()
res.toArray(function(err, docs) {
assert.equal(err, null);
console.log(docs)
});
db.close();
});
그 후,
$ node test.js 명령어를 통해 test.js파일을 실행시킨뒤, 아래와 같이 나오면 성공.
※MongoDB 버전에 따른 에러 이슈/
※MongoDB가 3.0버전 이상이 나옴에 따라 TypeError : db.collection is not a funtion
같은 오류가 뜬다. 해결법으로 아래와 같이 2가지 방법이 있다.
1. 다운그레이드
MongoDB 3.0버전 이상부터 해당이 되니, 2.0버전으로 다운그레이드. 해당 블로그 참조
Mongo DB 사용 중 database.collection is not a function 에러
출처: https://zxcv5500.tistory.com/287 [샤핀의 blog]) : https://zxcv5500.tistory.com/287
2. 3.0버전 문법 수정
다운그레이드가 버겁다면 아래와 같이 코드를 수정해서 사용하면 된다.
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected successfully to server");
↓
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
var url = 'mongodb://localhost:27017/';
MongoClient.connect(url, function (err, client) {
var db = client.db('test');
assert.equal(null, err);
console.log("Connected successfully to server");
기존에 변수 url의 마지막에 연결시킬 db의 이름까지 포함해서 넣었다면
3.0버전부터는 변수 url에 mongodb포트주소만 저장해둔 후,
connect가 발생될 때 client.db('저장소 이름'); 처럼 따로 저장소 이름을 명시해준다.
node.js를 통해 mongoDB에 값 입력
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
MongoClient.connect('mongodb://localhost:27017',{useUnifiedTopology:true}, function (err, client) {
var db = client.db('test');
assert.equal(null, err);
console.log("Connected successfully to server");
res = db.collection('user').find()
res.toArray(function (err, docs) {
assert.equal(err, null);
console.log(docs)
});
client.close();
});
↓
//mongodb 모듈로부터 MongoClient를 불러옴
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
// Connection URL (URL주소 + /db이름))
// var url = 'mongodb://localhost:27017';
// Use connect method to connect to the server
MongoClient.connect('mongodb://localhost:27017',{useUnifiedTopology:true}, function (err, client) {
var db = client.db('test');
assert.equal(null, err);
console.log("Connected successfully to server");
//collection이름을 쓸때는 아래와 같이 collection+(컬렉션이름)과 같이 쓴다. 또한 find()는 커서값으로, 주소값만 가져오며 실제 데이터를 가져오지 않는다.
// db.collection('user').insertOne({ first_connect: "Mongo" }).then(function (r) {
res = db.collection('user').find()
res.toArray(function (err, docs) {
assert.equal(err, null);
console.log(docs)
});
client.close();
// });
});
'MongoDB' 카테고리의 다른 글
[MongoDB]DeprecationWarning: current Server Discovery and Monitoring engine is deprecated 오류 해결 (0) | 2019.11.14 |
---|---|
mongoDB aggregation (pipeline) (1) | 2019.11.12 |
MongoDB Query 연습문제 (0) | 2019.11.12 |
MongoDB query 이해하기 (0) | 2019.11.07 |
MongoDB 기본 명령어(Create, Read,Delete,Update) (0) | 2019.11.06 |