mongoose를 사용하여 mongoDB 작성

12325 단어 mongooseMongoDB

mongoose란?



MongoDB를 조작하기 위한 npm 모듈.
MongoDB의 필드에 다양한 입력 설정을 할 수 있다.

필드에 삽입할 데이터 타입을 설정할 수 있다.

※MongoDB와 MySQL의 호칭의 차이



MySQL

데이터는 "테이블"의 형태로 저장된다.


・열(column)


・행(row)


MongoDB(NoSQL)

데이터는 '컬렉션' 형태로 저장


・필드(열에 대응)


・문서(행에 대응)


· 앱 작성시의 파일 구성 예
└── src
    ├── db
    │   └── mongoose.js     //mongooseのnpmモジュールを読み込み
    ├── index.js           //アプリのメイン処理を記述
    ├── models
    │   ├── task.js        //taskデータベースのためのフィールド設定
    │   └── user.js       //userデータベースのためのフィールド設定
    └── routers
        ├── task.js       //express・taskデータベース操作のためのルーティング処理
        └── user.js       //express・userデータベース操作のためのルーティング処理


mongoose 불러오기



· "npm 패키지 "mongoose", 공식 문서"참조
htps //w w. 음 pmjs. 코 m / Pac 카게 / Mongo Ose

프로젝트 파일에 "npm i mongoose"로 mongoose 설치

· mongoose 로드

「mongoose의 공식 문서」( htps : // 몽고오세 js. 코m/ )를 참조해, 읽어들이기 위한 코드를 기술.



const mongoose = require('mongoose')

//mongodbのポートの読み込みと、mongoDBのコレクション名(task-manager-api)をつける
mongoose.connect('mongodb://localhost:27017/task-manager-api', {
  useNewUrlParser: true, 
  useUnifiedTopology: true,
  useFindAndModify: false
});

<참고> 「mongoose의 공식 문서」( htps : // 몽고오세 js. 코m/ )의 코드

//mongooseモジュールの読み込み
const mongoose = require('mongoose');
//mongodbのポートの読み込みと、mongoDBのコレクション名(test)をつける
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});

//const Cat:Catというドキュメントを作成
//'Cat':データモデルの名前
//nameフィールドのデータ型をStringに設定。
const Cat = mongoose.model('Cat', { name: String });

//"Cat"データモデルの新しいインスタンスを作成。
//kittyというドキュメントで、nameは'Zildjian'
const kitty = new Cat({ name: 'Zildjian' });

//kittyドキュメントをデータベースに保存する。保存できたら"meow"と表示させる
kitty.save().then(() => console.log('meow'));

mongoose로 삽입할 데이터 유형 설정



・입력하는 데이터형을 설정

<공식 문서>
"Schemas"참조( htps : // 몽고오세 js. 이 m/도 cs/구이로. HTML#s cs )



<예>
const Cat = mongoose.model('Cat', { 
  name: {
     type: String  //データ型は文字列
},
  age: {
     type: Number //データ型は数字
},
  isMine: {
     type: Boolean  //データ型はtrueかfalseのどちらか
}
});


・입력하는 데이터 형식을 자작 ・최소값/최대값의 설정 ・입력 필수 설정 ・에러 설정

<공식 문서>
"Validation"참조 ( htps : // 몽고오세 js. 코 m/도 cs/ゔぁぃ다치온. html )

· 소문자로 인식 · 빈 공간 삭제 (데이터 위생)
const User = mongoose.model('User', {
  password:{
    type: String,
    required: true,  //入力必須設定
    trim: true,  //空白を無くして認識
    minlength: 7, //最小入力文字数設定

  //validate(value:入力した値)で、入力するデータ形式を自作
    validate(value){
       //toLowerCaseで、小文字も大文字も小文字と認識する設定
      if(value.toLowerCase().includes('password')){

    //エラーを起こして処理を分岐させる
        throw new Error ('Do not use "password" to password')
      }
    }
  }

· 기본 입력 설정
const Task = mongoose.model('Task', {
  complete:{
    type: Boolean,
    default: false,  //デフォルトの入力値を設定
  }
})

· 데이터베이스에 입력하는 값을 고유하게 설정
email: {
    type: String,
    unique: true, //データベース上のemailの値を一意にする›
    required: true,
    trim: true,
    lowercase: true,
    validate(value){
      if(!validator.isEmail(value)){
        throw new Error ('Email is invalid') //npmパッケージ、「validator」を利用し、メールアドレスとして正しい値か確認
      }
    }
  },

좋은 웹페이지 즐겨찾기