하나 삭제하기

1. 영화 데이터 조회하기

db.movies.find()

=> 결과

2. 'Amelie'가 제목인 영화 하나 삭제하기

Movie.deleteOne({title: 'Amelie'}).then(msg => console.log(msg))

=> 결과

3. 영화 다시 조회 하여 삭제된것 확인하기

=> 결과

'Amelie'라는 제목을 가진 영화중 첫번째 하나 데이터가 삭제되었음.

 

여러개 삭제 하기 (deleteMany())

1. 1999년 이후의 영화 여러개 삭제하기

Movie.deleteMany({year: {$gte: 1999}}).then(msg => console.log(msg))

=> 결과

모두다 삭제된것으로 확인됨

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose로 update 하기  (0) 2023.08.16
Mongoose로 찾기  (0) 2023.08.02
Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26

Update

1. 영화 제목이 'Amadeus'인 데이터 찾기

db.movies.find({title: 'Amadeus'})

=> 결과

2. 해당 영화의 연도를 1985로 update 하기

Movie.updateOne({title: 'Amadeus'}, {year: 1984}).then(res => console.log(res))

=> 결과

3. 다시 조회 하여 결과 보기

=> 결과

동시에 여러개 update하기

1. 모든 영화 조회하기

db.movies.find()

=> 결과

2. 'Amadeus'와 'Stand By Me' 영화 찾기

db.movies.find({title: {$in: ['Amadeus', 'Stand By Me']}})

=> 결과

3. 해당영화의 rating을 S로 변경하기

Movie.updateMany({title: {$in: ['Amadeus','Stand By Me']}}, {rating: "S"}).then(res => console.log(res))

=> 결과

4. 다시 조회하여 결과 확인

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose로 삭제하기  (0) 2023.08.16
Mongoose로 찾기  (0) 2023.08.02
Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26

위의 코드를 입력하여 node로 접속하여 index.js파일을 실행시킨다.

Movie.find({}).then(data => console.log(data))

위의 명령어를 입력하면 아래와 같이 모든 Movie데이터를 불러온다

=> 결과

조건 추가하기

Movie.find({rating: 'PG-13'}).then(data => console.log(data))

=> 결과
Movie데이터 중 rating이 'PG-13'에 해당하는 데이터만 조회됨.

- 1990년 이전에 개봉한 영화 조회하기

Movie.find({year: {$lt: 1990}}).then(data => console.log(data))

=> 결과

Movie내에서 조건에 해당하는 첫번째 영화만 조회 하기

Movie.findOne({}).then(m => console.log(m))

위의 명령어를 입력하면 Movie내에서 특정 조건에 해당하는 첫번째 영화만 조회 가능

ID속성을 이용해서 데이터 조회하기 - findbyid()

Movie.findById('64ca46c217e51f177d259a4f').then(m => console.log(m))

=> 결과

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose로 삭제하기  (0) 2023.08.16
Mongoose로 update 하기  (0) 2023.08.16
Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Movie.insertMany([
    {title: 'Amelie', year: 2001, score: 8.3, rating: 'R'},
    {title: 'Alien', year: 1979, score: 8.1, rating: 'R'},
    {title: 'The Iron Giant', year: 1999, score: 7.5, rating: 'PG'},
    {title: 'Stand By Me', year: 1986, score: 8.6, rating: 'R'},
    {title: 'Moonrise Kingdom', year: 2012, score: 7.3, rating: 'PG-13'}
])
.then(data => {
    console.log("IT WORKED!")
    console.log(data);
})

위와 같은 코드를 입력하고 터미널 창에 가서 node index.js 명령어를 입력하여 index.js를 실행시키면 추가한 위의 코드로 인해 다량 데이터가 대량으로 Insert됨.

=> DB 조회 결과

 

스키마 정의 하기

index.js에 아래와 같은 소스코드를 작성하여 스키마를 정의한다.

// MovieSchema 생성하기
const movieSchema = new mongoose.Schema({
    title: String,
    year: Number,
    socre: Number,
    rating: String
})

=> 결과

위와 같이 스키마를 정의하는데는 데이터 베이스에 아무련 영향을 주진 않는다.

 

스키마를 이용하여 모델 만들기

// mongoose.model('첫글자는 대문자에 단수형이어야함', 모델을 만드는데 사용할 스키마)
// Movie라는 모델 클래스 생성
const Movie = mongoose.model('Movie', movieSchema)

=> 결과

터미널에서 Movie 모델 출력해보기

 

터미널에서 위와 같이 입력후 터미널 창에서 amadeus 라고 입력하면 아래와 같은 결과가 출력된다. 위에서 생성한 Amadeus에 접근가능.

아직 몽고 쉘에서 db를 조회 해보면 아래와 같이 아무것도 뜨지 않는것을 볼수 있다.

아래와 같은 명령어를 입력하여 db에 저장할수 있다

저장후 다시 조회를 해보면 아래와 같이 결과가 반환 되는것을 볼수 있다.

영화의 평점 변경하기 or 추가하기

위에서 amadeus의 데이터를 생성할때 실수로 score를 누락한 상태에서 아래와 같이 명령어를 입력하였더니 자동으로 amadeus에 score라는 데이터가 추가되는것이 확인됨.

=> 결과

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose로 update 하기  (0) 2023.08.16
Mongoose로 찾기  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Modgo DB 데이터 수정하기(Update)  (0) 2023.07.26

Mongoose 설치하기

npm init -y
npm i mongoose

-> 결과

npm init -y를 사용하여 NPM 저장소를 초기화 하며 새로운 프로젝트를 생성후 Mongoose를 설치.

 

touch index.js

위의 코드를 사용하여 index.js파일 생성

-> 결과

 

Mongoose 연결하기

const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/movieeApp', {useNewUrlParser: true, useUnifiedTopology: true});

위의 코드를 입력하고 cmd창에서 다음과 같이 입력하면 movieApp DB에 연결된것을 확인 할수 있다.

위의 코드만으로는 아래 cmd창에서 확인했을때 연결되었는지 육안으로 명확하게 확인 하기 어렵다 따라서 아래와 같은 코드를 추가해준다.

const db = mongoose.connection;
// 에러가 있을경우 connection error문구 출력
db.on('error', console.error.bind(console, 'connection error'));
db.once('open', function(){
    console.log('connection open!');
})

=> vscode화면

=> cmd에서 실행한 화면

연결이 성공하여 connection open!이라는 문구가 뜬다.

 

콜백 함수를 사용하여 연결 하는 방법

위의 방법 또한 사용 가능 하지만 조금더 트렌디한 방법을 알아보자.

아래와 같이 입력하여 콜백함수와 promise를 이용하여 .then()과 .catch()를 사용하여 연결 하여 보자.

const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/movieApp', {useNewUrlParser: true, useUnifiedTopology: true})
.then(() => {
    console.log("Connection Open!!!")
})
.catch(err => {
    console.log("Oh No Error!!!")
    console.log(err)
})

=> vscode화면

=> 결과

위와 같이 정상적으로 연결 된것으로 확인 되었다.

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose로 찾기  (0) 2023.08.02
Mongoose 모델(1)  (0) 2023.08.02
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Modgo DB 데이터 수정하기(Update)  (0) 2023.07.26
Modgo DB 데이터 찾기(Read)  (0) 2023.07.26

cats전체 컬렉션

dogs전체 컬렉션

deleteOne()

db.cats.deleteOne({name: 'Blue Steele'})

위와 같이 deleteOne() 명령어를 사용하면 뒤에 따라오는 조건에 해당하는 데이터가 삭제됨

-> 결과

 

deleteMany()

db.dogs.deleteMany({isAvailable: false})

위와 같이 deleteMany()를 사용하여 isAvailable: false에 해당하는 두개의 데이터를 동시에 삭제.

또한 아래와 같이 deleteMany()안에 아무 조건도 걸지 않고 {}과 같이 빈칸으로 두면 전체 삭제도 가능함

db.dogs.deleteMany({})

-> 결과

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Modgo DB 데이터 수정하기(Update)  (0) 2023.07.26
Modgo DB 데이터 찾기(Read)  (0) 2023.07.26
Modgo DB 데이터 Insert  (0) 2023.07.26

Dogs 컬렉션 데이터

updateOne()

db.dogs.updateOne({name: 'Charlie'}, {$set: {age: 4}})

-> 결과

기존에는 나이가 3살이었다가 4살로 변경됨을 알수 있음

동시에 두가지 데이터의 속성 수정하기

db.dogs.updateOne({name: 'Charlie'}, {$set: {age: 5, breed: 'Lab'}})

-> 결과

없는 속성 Update

db.dogs.updateOne({name: 'Charlie'}, {$set: {color: 'Chocolate'}})

-> 결과

없는 속성을 Update하려고 하면 새로운 키-값 쌍으로 추가됨.

 

updateMany()

db.dogs.updateMany({catFriendly: true}, {$set: {isAvailable: false}})

위의 코드를 사용하여 catFriendly: true에 해당하는 두개의 데이터를 동시에 Update가능

-> 결과

$currentDate

update할때 아래와 같이 $currentDate를 사용하면 수정한 날짜와 시간을 입력 가능함.

db.cats.updateOne({age:6}, {$set: {age:7}, $currentDate: {lastChanged: true}})

여기서 lastChanged는 어떤 이름으로던지 원하는 대로 변경 가능

-> 결과

 

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Modgo DB 데이터 찾기(Read)  (0) 2023.07.26
Modgo DB 데이터 Insert  (0) 2023.07.26

데이터 찾기 find()

db.cats.find()
db.dogs.find()

-> db.cats.find() 결과

-> db.dogs.find() 결과

 

데이터 찾을때 조건 설정 하기

dogs 컬렉션 중에서 breed가 corgi인 데이터 찾기

db.dogs.find({breed: "corgi"})

-> 결과

 

데이터 찾을때 하나만 나오게 하기( findOne() )

db.dogs.find({catFriendly: true})

위의 코드를 입력하면 아래와 같이 여러개의 결과가 출력된다.

하지만 다음과 같이 findOne()을 사용하면 하나의 결과만 출력된다.

db.dogs.findOne({catFriendly: true})

-> 결과

 

데이터 찾을때 복합조건 설정 하기

db.dogs.find({catFriendly: true, age: 17})

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Modgo DB 데이터 수정하기(Update)  (0) 2023.07.26
Modgo DB 데이터 Insert  (0) 2023.07.26

1. DB생성 animalShelter

use animalShelter

2. animalShelte DB에 dogs 컬렉션 생성

db.dogs.insertOne({name : "Charlie", age:3 , breed: "corgi", catFriendly: true})

3. 결과 보기

db.dogs.find()

_id는 Mongo에 의해 자동으로 생성됨. 기본키임. 이 집합에서 모든 요소에 대해 고유해야한다.

 

4. 한번에 두개의 dogs 데이터 insert하기

db.dogs.insert([{name: "Wyatt", breed: "Golden", age: 14, catFreindly : false}, 
{name: "Tonya", breed: "Chihuahua", age: 17, catFriendly : true}])

-> 결과

 

'공부내용정리 > Mongo' 카테고리의 다른 글

Mongoose 모델(1)  (0) 2023.08.02
Mongo에 Mongoose 연결하기(1)  (0) 2023.07.27
Mongo DB 데이터 삭제하기(Delete)  (0) 2023.07.26
Modgo DB 데이터 수정하기(Update)  (0) 2023.07.26
Modgo DB 데이터 찾기(Read)  (0) 2023.07.26

+ Recent posts