マングースを学ぶ
Mongoose は MongoDB のラッパーのようなものです.
mongoose を使用すると、mongoDB が接続されるまで待つ必要はありません. Mongoose は、作成したすべてのコマンドをキューに入れ、mongoDB に接続した後でのみそれらのコマンドを作成します.
マングースの場合、3 つの基本的な概念を知る必要があります.
マングースの内部には、最初に理解する必要がある 3 つの主要な概念があります.
スキーマ - データの構造がどのように見えるかを定義します. モデル - スキーマの実際の形式です.モデルは、ドキュメントを構築するためのクラスです. クエリ - クエリは、mongoDB データベースに対して行う単なるクエリです.
すべてのスキーマを 1 つのファイルに書き込むことができます.ただし、スキーマごとに異なるファイルを使用することをお勧めします.
スキーマは、キーと値のペアを持つオブジェクトを受け取ります.ここで、キーは mongoDB オブジェクト内のキーの名前です.したがって、ユーザーに name を持たせたい場合は、名前のキーを与えます.そして、値は **name* ,* のデータ型、つまり String になります.
これで、名前フィールドと年齢フィールドを定義するユーザー スキーマができました.名前は文字列になり、年齢は数字になります.
次に、このスキーマのモデルを作成する必要があります.これには mongoose.model() 関数を使用する必要があります.この関数はモデルの名前を受け取ります.この場合、これは「ユーザー」になります.そして、2 番目のパラメーターとしてスキーマを渡す必要があります.
別のファイルにスキーマを作成する場合は、モデルをエクスポートする必要があります.
では、ユーザーを作成しましょう.
別のファイルでスキーマを作成したため、メイン スクリプトでそれを要求する必要があります.
User クラスを新しいユーザーオブジェクトとしてインスタンス化し、オブジェクトを渡すことでユーザーを作成できます.
スクリプトでユーザーのローカル コピーを作成するだけです.データベースには保存されません.これには save() 関数を使用する必要があります.
【ご利用をお約束します.しかし、async await instant of promise を使用する方がよりクリーンです. ]\
実際の User クラスで create() メソッドを使用してユーザーを作成することもできます.
String、Number、Date、ObjectId などの多くの型を使用できます.
アドレスで行ったように、スキーマでネストされたオブジェクトを使用できます ——
このように、「住所」の完全なスキーマを作成できます
これは、複雑なスキーマに非常に役立ちます.
エラー処理には try catch を使用する必要があります
オブジェクト形式でスキーマのフィールドに追加のプロパティを追加できます.
このようなスキーマでフィールド「require」を設定できます—
スキーマで使用できるいくつかの追加プロパティ-
required - html フォームの require 属性に似ています.つまり、提出済みの を含める必要があります. 小文字 - 指定された電子メールを自動的に小文字に変換します. 大文字 - 指定された電子メールを自動的に大文字に変換します.
デフォルト - デフォルト値を設定します. immutable - フィールドを不変または変更不可にします.
mongoose を使用すると、mongoDB が接続されるまで待つ必要はありません. Mongoose は、作成したすべてのコマンドをキューに入れ、mongoDB に接続した後でのみそれらのコマンドを作成します.
マングースの場合、3 つの基本的な概念を知る必要があります.
マングースの内部には、最初に理解する必要がある 3 つの主要な概念があります.
すべてのスキーマを 1 つのファイルに書き込むことができます.ただし、スキーマごとに異なるファイルを使用することをお勧めします.
スキーマは、キーと値のペアを持つオブジェクトを受け取ります.ここで、キーは mongoDB オブジェクト内のキーの名前です.したがって、ユーザーに name を持たせたい場合は、名前のキーを与えます.そして、値は **name* ,* のデータ型、つまり String になります.
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema({
name: String,
age : Number
})
これで、名前フィールドと年齢フィールドを定義するユーザー スキーマができました.名前は文字列になり、年齢は数字になります.
次に、このスキーマのモデルを作成する必要があります.これには mongoose.model() 関数を使用する必要があります.この関数はモデルの名前を受け取ります.この場合、これは「ユーザー」になります.そして、2 番目のパラメーターとしてスキーマを渡す必要があります.
mongoose.model('User', userSchema)
別のファイルにスキーマを作成する場合は、モデルをエクスポートする必要があります.
module.exports= mongoose.model('User', userSchema)
では、ユーザーを作成しましょう.
別のファイルでスキーマを作成したため、メイン スクリプトでそれを要求する必要があります.
const User = require('./user');
User クラスを新しいユーザーオブジェクトとしてインスタンス化し、オブジェクトを渡すことでユーザーを作成できます.
new User({ name: 'abir', age: 6 })
スクリプトでユーザーのローカル コピーを作成するだけです.データベースには保存されません.これには save() 関数を使用する必要があります.
【ご利用をお約束します.しかし、async await instant of promise を使用する方がよりクリーンです. ]\
run();
async function run() {
const user = await new User({ name: 'abir', age: 6 })
await user.save();
console.log(user);
//return
// {
// name: 'abir',
// age: 6,
// _id: new ObjectId("61ccb948e35a787b6ad2b812"),
// __v: 0
// }
}
実際の User クラスで create() メソッドを使用してユーザーを作成することもできます.
run();
async function run() {
const user = await User.create({ name: 'abir', age: 21 })
console.log(user)
}
スキーマ タイプ
String、Number、Date、ObjectId などの多くの型を使用できます.
アドレスで行ったように、スキーマでネストされたオブジェクトを使用できます ——
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
age: Number,
cratedAt: Date,
updatedAt: Date,
bestFriend: mongoose.SchemaTypes.ObjectId,
hobbies: [String],
address: {
street: String,
city: String,
}
});
module.exports = mongoose.model('User', userSchema);
このように、「住所」の完全なスキーマを作成できます
const addressSchema = new mongoose.Schema({
street: String,
city: String,
});
const userSchema = new mongoose.Schema({
name: String,
age: Number,
cratedAt: Date,
updatedAt: Date,
bestFriend: mongoose.SchemaTypes.ObjectId,
hobbies: [String],
address: addressSchema,
});
これは、複雑なスキーマに非常に役立ちます.
検証——————————
エラー処理には try catch を使用する必要があります
const mongoose = require('mongoose');
const User = require('./user');
mongoose.connect('mongodb://localhost/test', () => {
console.log('connected');
})
run();
async function run() {
try {
const user = await User.create({
name: 'abir',
age: 'ab'
})
user.name = 'rafi'
user.save();
console.log(user)
} catch (e) {
console.log(e.message)
}
}
オブジェクト形式でスキーマのフィールドに追加のプロパティを追加できます.
このようなスキーマでフィールド「require」を設定できます—
const userSchema = new mongoose.Schema({
name: String,
email:{
type: String,
required: true,
},
age: Number,
});
スキーマで使用できるいくつかの追加プロパティ-
Reference
この問題について(マングースを学ぶ), 我々は、より多くの情報をここで見つけました https://dev.to/foysalbn/learn-mongoose-10j2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol