mongoose를 사용하여 mongoDB 작성
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」を利用し、メールアドレスとして正しい値か確認
}
}
},
Reference
이 문제에 관하여(mongoose를 사용하여 mongoDB 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Molly95554907/items/595a7d3f525d6774d50d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)