이번 lecture에서 할 작업은 아래와 같다. 

1. 305. Introduction to Mongoose Pt. 1에서 호출한 cats.js에 mongoose 모델링 생성

2. JS를 통해 mongdb에 실제로 데이터 저장 

3. 저장된 데이터를 retrieve(조회) 

4. 2번 최적화 코드

 

 

1. mongoose 모델링 생성 및 데이터 저장

cats.js

const mongoose = require("mongoose");
mongoose.connection("mongodb://localhost/cats_app", { useNewUrlParser: true}) 
// mongodb 서버가 동작 중일 때는 연결, 동작중이지 않을 때는 서버 구동 후 연결

const catSchema = new mongoose.Schema({
	name: String,
	age: Number,
	temperament: String
});

const Cat = mongoose.model("Cat", catSchema); 
// "Cat"이라는 이름의 catSchema 모델로 컴파일한 후 Cat 변수에 저장한다. 이는 데이터를 7번 라인에 선언한 
// 형태로 저장하기 위함이다. 

// Adding a new cat to the DB
// db에 george를 저장하기 위해 변수 생성
const george = new Cat({
	name: "george",
	age: 11,
	temperament: Grouchy
});

george.save((err, cat) => {
	if(err){
		console.log("Something has went wrong!");
	} else {
		console.log("We've just save a CAT to the db");
		console.log(cat);		// 실제 db에 저장된 cat를 console log로 출력
		console.log(george);	// 19라인에서 저장된 george를 console.log로 출력
	}
});

 

[그림 1] mongoDB에 실제로 저장된 후 console log에 찍힌 메세지

하지만 실제로 console log에 찍힌 값은 db에서 조회된 데이터가 아닌 저장 시 db에 전달한 값일 뿐이다.

 

 

2. db에 저장된 데이터를 실제로 조회

cats.js

const mongoose = require("mongoose");
mongoose.connection("mongodb://localhost/cats_app", { useNewUrlParser: true}) 
// mongodb 서버가 동작 중일 때는 연결, 동작중이지 않을 때는 서버 구동 후 연결

const catSchema = new mongoose.Schema({
	name: String,
	age: Number,
	temperament: String
});

const Cat = mongoose.model("Cat", catSchema); 
// "Cat"이라는 이름의 catSchema 모델로 컴파일한 후 Cat 변수에 저장한다. 이는 데이터를 7번 라인에 선언한 
// 형태로 저장하기 위함이다. 

// Adding a new cat to the DB
// db에 george를 저장하기 위해 변수 생성
const george = new Cat({
	name: "george",
	age: 11,
	temperament: Grouchy
});

george.save((err, cat) => {
	if(err){
		console.log("Something has went wrong!");
	} else {
		console.log("We've just save a CAT to the db");
		console.log(cat);		// 실제 db에 저장된 cat를 console log로 출력
		console.log(george);	// 19라인에서 저장된 george를 console.log로 출력
	}
});



// DB에 저장된 모든 값을 조회한다. 
Cat.find({}, (err, cats) => {
	if(err){
		console.log("Oh no, Error has been occured!");
        console.log(err);
	} else {
		console.log("All the cats are... ");
		console.log(cats);
	}
});


 

3. 1에서 george라는 변수에 고양이의 데이터를 저장한 후, 그 데이터를 다시 db로 전달하였다. 이를 하나의 코드로 작성한다.

 

cats.js

const mongoose = require("mongoose");
mongoose.connection("mongodb://localhost/cats_app", { useNewUrlParser: true}) 
// mongodb 서버가 동작 중일 때는 연결, 동작중이지 않을 때는 서버 구동 후 연결

//const catSchema = new mongoose.Schema({
//	name: String,
//	age: Number,
//	temperament: String
//});

const Cat = mongoose.model("Cat", catSchema); 
// "Cat"이라는 이름의 catSchema 모델로 컴파일한 후 Cat 변수에 저장한다. 
// 이는 데이터를 7번 라인에 선언한 형태로 저장하기 위함이다. 

// Adding a new cat to the DB
// db에 george를 저장하기 위해 변수 생성
//const george = new Cat({
//	name: "george",
//	age: 11,
//	temperament: Grouchy
//});

//george.save((err, cat) => {
//	if(err){
//		console.log("Something has went wrong!");
//	} else {
//		console.log("We've just save a CAT to the db");
//		console.log(cat);		// 실제 db에 저장된 cat를 console log로 출력
//		console.log(george);	// 19라인에서 저장된 george를 console.log로 출력
//	}
//});


Cat.create({			// catSchema로 작성된 Cat이란 변수에 아래의 값을 추가한다.
	name: "Korean short",
	age: 2,
	temperament: "cute"
	}, (err, newCat) => {
		if(err){
			console.log(err);
		} else {
			console.log(newCat);
		}
})


// DB에 저장된 모든 값을 조회한다. 
Cat.find({}, (err, cats) => {
	if(err){
		console.log("Oh no, Error has been occured!");
        console.log(err);
	} else {
		console.log("All the cats are... ");
		console.log(cats);
	}
});


 

[그림 2] cats.js 구동 시 console log에 출력되는 내용. 2개의 george 중 1개는 실제 db로 저장되는 값, 나머지 1개는 저장하기 위해 JS로 변환시켜놓은 값이다. 

 

[그림 3] mongoDB에 실제로 저장된 데이터 

 

+ Recent posts