본문 바로가기
Databases/MongoDB | Mongoose

[Mongoose] READING | find() | close()연결끊기

by CodeMia 2021. 11. 19.

native mongodb driver로 데이터 검색할 때는 아래와 같은 코드로 작성하였다. 

mongodb

하지만 이제는 이렇게 긴 코드는 필요없다 

 

 

Mongoose로 데이터 찾기 

mongoose는 간단하다 

find() 함수를 사용하고, 콜백 함수까지 받을 수 있다. 

콜백함수의 파라미터를 보면 

파라미터1 은 err를 넣고 

파라미터2 는 검색하고자 하는 내용을 넣어준다.

fruits로 collection 안 모든 데이터가 나오게 했다. 

 

에러가 없으면 검색 내용이 나온다. 

 

나오는 데이터들은  array 안에 들어가 있는 자바스크립트 오브젝트이다. 

dot notation을 이용해서 이 데이터들의 properties를 활용할 수 있고, 

2개의 다른 method를 보낼 수 있다. pass around.

 

fruit은 각각 property를 가지고 있다. 

name, rating, review.. 

각 property는 value와 연관되어 있다. 

 

 

fruit 이름만 log 에 나오게 해보기  

forEach와 fruit.name 

또는 

 

 

close connection Mongoose  연결 끊기 

mongoose와 연결하려면 

mongoose.connect() 코드를 사용하였다. 

 

mongoose와 연결을 끊으려면 어떻게 해야할까?

 

터미널에서 node app.js 누르면 mongoose로 들어가고

그 안에 있다가 다시 ctrl+ C로 밖에 나와서 

다시 node app.js을 눌러 다시 들어가기를 반복했다. 

 

이렇게 불편하게 하지 말고

작업이 끝나면 연결이 끊기게 해놓아야한다. 

이 때 mongoose.connection.close(); 를 사용한다. 

 

한 바퀴 작업 돌고 자동으로 빠져나왔다.

 

Fruit.find(function(err, fruits) {
if (err) {
console.log(err);
} else {
mongoose.connection.close();

fruits.forEach(function(fruit) {
console.log(fruit.name);
});
}
});

 


 

 

const mongoose = require('mongoose');
mongoose.connect("mongodb://localhost:27017/fruitsDB", { useNewUrlParser: true });

const fruitSchema = new mongoose.Schema({
name: String,
rating: Number,
review: String
});

const Fruit = mongoose.model("Fruit", fruitSchema);

const fruit = new Fruit({
name: "Apple",
rating: 7,
review: "Pretty solid as a fruit."
});

// fruit.save();

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

const Person = mongoose.model("Person", personSchema);
const person = new Person({
name: "Alex",
age: 39
});

// person.save();

const kiwi = new Fruit({
name: "Kiwi",
rating: 10,
review: "The best fruit."
});

const orange = new Fruit({
name: "Orange",
rating: 4,
review: "Too sour for me."
});

const banana = new Fruit({
name: "banana",
rating: 3,
review: "Weird texture."
});

// Fruit.insertMany([kiwi, orange, banana], function(err) {
// if (err) {
// console.log(err);
// } else {
// console.log("successful saved all the fruits to fruitsDB")
// }
// });


Fruit.find(function(err, fruits) {
if (err) {
console.log(err);
} else {
mongoose.connection.close();

fruits.forEach((fruit) => {
console.log(fruit.name);
});
}
});

 

'Databases > MongoDB | Mongoose' 카테고리의 다른 글

[Mongoose] Update  (0) 2021.11.21
[Mongoose] Data Validation | 제약 걸기  (0) 2021.11.21
[Mongoose] 몽구스 시작하기 | INSERT | INSERT MANY  (0) 2021.11.19
[MongoDB] CRUD - DELETE  (0) 2021.11.15
[MongoDB] CRUD - UPDATE  (0) 2021.11.15

댓글