使用Mongoose来描述MongoDB
猫鼬是什么?用于操作MongoDB的npm模块。可以对MongoDB字段进行各种输入设置。
可以设置要插入到字段中的数据类型。
※MongoDB和MySQL的称谓差异
MySQL: MySQL是一种开源的关系型数据库管理系统。
MongoDB(非关系型数据库)
・建立应用程序时的文件结构示例
└── 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”的官方文档,链接为https://www.npmjs.com/package/mongoose。
在项目文件中,使用 “npm i mongoose” 命令安装mongoose。
加载蒙古鼠程序
请参考 “mongoose的官方文档”(https://mongoosejs.com/),编写用于读取的代码。
const mongoose = require('mongoose')
//mongodbのポートの読み込みと、mongoDBのコレクション名(task-manager-api)をつける
mongoose.connect('mongodb://localhost:27017/task-manager-api', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
});
<参考>”mongoose的官方文件”(https://mongoosejs.com/)的代码。
//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」( https://mongoosejs.com/docs/guide.html#statics )。

例:他是一个非常慷慨的人。
const Cat = mongoose.model('Cat', {
name: {
type: String //データ型は文字列
},
age: {
type: Number //データ型は数字
},
isMine: {
type: Boolean //データ型はtrueかfalseのどちらか
}
});
创建自定义数据格式、设置最小值/最大值、设置必填项、设置错误处理。<官方文件>
参考”验证”(https://mongoosejs.com/docs/validation.html#built-in-validators)
・将字符识别为小写,并删除空白间隔(数据清洗)
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」を利用し、メールアドレスとして正しい値か確認
}
}
},



MongoDB(非关系型数据库)
・建立应用程序时的文件结构示例
└── 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”的官方文档,链接为https://www.npmjs.com/package/mongoose。
在项目文件中,使用 “npm i mongoose” 命令安装mongoose。
加载蒙古鼠程序
请参考 “mongoose的官方文档”(https://mongoosejs.com/),编写用于读取的代码。
const mongoose = require('mongoose')
//mongodbのポートの読み込みと、mongoDBのコレクション名(task-manager-api)をつける
mongoose.connect('mongodb://localhost:27017/task-manager-api', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
});
<参考>”mongoose的官方文件”(https://mongoosejs.com/)的代码。
//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」( https://mongoosejs.com/docs/guide.html#statics )。

例:他是一个非常慷慨的人。
const Cat = mongoose.model('Cat', {
name: {
type: String //データ型は文字列
},
age: {
type: Number //データ型は数字
},
isMine: {
type: Boolean //データ型はtrueかfalseのどちらか
}
});
创建自定义数据格式、设置最小值/最大值、设置必填项、设置错误处理。<官方文件>
参考”验证”(https://mongoosejs.com/docs/validation.html#built-in-validators)
・将字符识别为小写,并删除空白间隔(数据清洗)
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」を利用し、メールアドレスとして正しい値か確認
}
}
},



・建立应用程序时的文件结构示例
└── 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”的官方文档,链接为https://www.npmjs.com/package/mongoose。
└── src
├── db
│ └── mongoose.js //mongooseのnpmモジュールを読み込み
├── index.js //アプリのメイン処理を記述
├── models
│ ├── task.js //taskデータベースのためのフィールド設定
│ └── user.js //userデータベースのためのフィールド設定
└── routers
├── task.js //express・taskデータベース操作のためのルーティング処理
└── user.js //express・userデータベース操作のためのルーティング処理
请参考npm包”Mongoose”的官方文档,链接为https://www.npmjs.com/package/mongoose。
在项目文件中,使用 “npm i mongoose” 命令安装mongoose。
加载蒙古鼠程序
请参考 “mongoose的官方文档”(https://mongoosejs.com/),编写用于读取的代码。
const mongoose = require('mongoose')
//mongodbのポートの読み込みと、mongoDBのコレクション名(task-manager-api)をつける
mongoose.connect('mongodb://localhost:27017/task-manager-api', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
});
<参考>”mongoose的官方文件”(https://mongoosejs.com/)的代码。
//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」( https://mongoosejs.com/docs/guide.html#statics )。

例:他是一个非常慷慨的人。
const Cat = mongoose.model('Cat', {
name: {
type: String //データ型は文字列
},
age: {
type: Number //データ型は数字
},
isMine: {
type: Boolean //データ型はtrueかfalseのどちらか
}
});
创建自定义数据格式、设置最小值/最大值、设置必填项、设置错误处理。<官方文件>
参考”验证”(https://mongoosejs.com/docs/validation.html#built-in-validators)
・将字符识别为小写,并删除空白间隔(数据清洗)
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」を利用し、メールアドレスとして正しい値か確認
}
}
},
参考「Schemas」( https://mongoosejs.com/docs/guide.html#statics )。

例:他是一个非常慷慨的人。
const Cat = mongoose.model('Cat', {
name: {
type: String //データ型は文字列
},
age: {
type: Number //データ型は数字
},
isMine: {
type: Boolean //データ型はtrueかfalseのどちらか
}
});
创建自定义数据格式、设置最小值/最大值、设置必填项、设置错误处理。<官方文件>
参考”验证”(https://mongoosejs.com/docs/validation.html#built-in-validators)
・将字符识别为小写,并删除空白间隔(数据清洗)
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」を利用し、メールアドレスとして正しい値か確認
}
}
},
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」を利用し、メールアドレスとして正しい値か確認
}
}
},
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」を利用し、メールアドレスとして正しい値か確認
}
}
},