Mongoose (Basic)

6874 ワード

Introduce


この文書は2022年3月22日に作成されました.
Mongooseはオブジェクトドキュメントマッピング(ODM)ライブラリです.
アプリケーションとMongoDBをメソッド形式で簡単に接続できます.
そのためには、まずアプリケーションフレームワークを決定する必要があります.
最も簡単で大衆化されたExtenssを使用し、プロジェクト構造は以下の通りである.

# Program

  • Node.js 14.17.3 LTS
  • Npm 6.14.13
  • MongoDB Atlas 5.0.6 Enterprise
  • MongoDB Atlas Network AWS Seoul(ap-northeast-2)
  • MongoDB Atlas Cluster M0 Sandbox(General)
  • MongoDB Compass Version 1.30.1
  • # Modules

  • Express 4.17.3
  • Mongoose 6.2.7
  • # Project


    作成時に行われる練習項目はExpress with MongoDBです.
    詳細については、リポジトリのREADMEを参照してください.mdを確認してください.

    Thoery


    この文書の項目はRESTful APIに基づいています.
    詳細については、Verlog-Devコンピュータの専門知識>REST APIを参照してください.

    CRUDとは?


    Create、Read、Update、Deleteの4つの方法.
    ここの方法は、
    クライアントがブラウザを使用してサーバに要求を送信すると、
    添付する情報オブジェクトタイトルのmehotd値を表します.

    RESTful APIとは?


    CRUDのために設計されたバックエンドAPIは、RESTful APIまたはRESTfulサーバと呼ばれる.
    ここでいうRESTとは、
    状態遷移を表すRepresentation State Transfer.
    クライアントがサーバに情報を送信するメソッド値.
    つまり.
    CRUDカスタムAPIは、以下に示すように、RESTful APIと呼ぶことができる.
    GET/userログイン
    POST/user会員入力
    GET/user/:idメンバー情報の表示
    PUT/user/:idメンバー情報の変更
    DELETE/user/:idメンバー終了

    Mongoose


    ここでは、Mongoose APIを参照してください.
    同時に使用されるいくつかの一般的な方法に限定されます.
    たまに使用または詳細は、終了時にMongoose APIまたはgooglingを使用することができます.
    GET、POST、PUT、DELETEなどでデータベースを接続する場合は、非同期処理(async await)が必要です.

    ObjectId


    MongoDBでは、ハッシュインデックスのオブジェクトIDが自動的に作成されます.
    次の投稿MongoDBについてを参照してください.

    Shcema, Model


    ここで説明するuserModelには、次のものがあります.
    import mongoose from "mongoose";
    
    const userSchema = new mongoose.Schema({
        email: { type:String, required:true, unique:true },
        password: { type:String, required:true },
        age:Number
    }, { timestamps:true });
    
    // timestamp 옵션은 처음 데이터를 생성했을 떄 createAt, 수정했을 때 updateAt 을 최신화
    
    export default userModel = mongoose.model('User', userSchema);

    POST / Create


    POSTメソッド、Createには以下の2つのケースがあります
  • new userModel().save();
  • userModel.create();
  • 1つ目の方法はuserModelの作成と保存です.
    2つ目の方法は、userModelに基づいてDBに直接作成することです.
    二つの方法はほとんど同じではない.

    GET / Read


    GETメソッド、Readには以下の場合があります.
  • userModel.findById({id:ObjectId(「略文字列」)
  • userModel.findOne({ key:"value"});
  • それ以外にも
  • がたくさんあります
    SQLのようにselectでIOを制限したり、正規表現を使用したりすることができます.

    PUT / Update


    PUTメソッド、更新は以下の場合があります.
  • const user = userModel.findById({id:ObjectId(「略文字列」)
    user.save();
  • userModel.findByIdAndUpdate("大まかな文字列は",{key:"value"});
  • 1番は2回呼び出しDBなので2番が良く見えます.
    ただし、ObjectIdがない場合や、パスワードなどを比較する必要がある場合は、仕方がありません.

    DELETE / Delete


    DELETEメソッド、DELETEには次のような場合があります.
  • userModel.deleteOne({ key:"value"});
  • userModel.findByIdAndDelete(_id);
  • Mongoose Relation


    ユーザーが投稿を作成するための要件
    Mongooseの実現方法は2つあります.
  • PostSchemaを作成し、UserSchemaに
  • を接続します.
  • userSchemaに文書
  • を追加

    postSchema <-> userSchema

    // userSchame 안에 아래의 코드 삽입
    postLists: [{ type:mongoose.Schema.Types.ObjectId, ref: "Post" }],
    userSchemaでは上記のコードを使用しますが、実際にJOINを使用する方法はpopulateメソッドを使用します.
    userModel.findById({ _id:"대충 문자열 블라블라" }).popualte("postLists");

    post in userSchema


    json形式でグループ分けして入ればいいです