バックエンド処理猫王

7437 ワード

MongoDB


柔軟で拡張性の高いデータ・モードを備えたNoSQLデータベース
  • RDBMSに比べて設定が少なく、学習が必要な内容も少ない.
  • ドキュメントとは?


    キー値ペア

    MongoDB構造


    サーバ->DB->コレクション->ドキュメント順に大きいものから小さいものから構成されます.

    MongoDBの使い方


    MongoDBに関するインストールを行います
    モンゴスというノードjsで使用するMongoDBベースのライブラリのインストール

    Mongoose


    1.サーバとデータベースの接続


    mongoseのconnect関数の使用

    src/index.js

    require('dotenv').config();
    
    const mongoose = require('mongoose');
    
    const {PORT, MONGO_URI } = process.env;
    
    mongoose
    	.connect(MONGO_URI)
    	.then(...)
        .catch(...)

    2.パターンを使用したモデルの作成と接続


    src/models/post.js

    import mongoose from 'mongoose';
    
    ...
    
    const Post = mongoose.model('Post',PostSchema);
    export default Post;

    src/api/posts/posts.ctrl.変更


    以前使用していたファイルは配列でDB接続は行われていなかったため、この部分を変更してDB接続を行う
    import Post from '../../models/post' //model에 있는 내용 가져온다.
    
    export const write = async ctx => {
      const {title, body, tags  } = ctx.request.body;
      const post = new Post({
        title,
        body,
        tags,
      });
      try{
        await post.save(); //save 함수를 통해 비로소 DB에 저장
        ctx.body = post; //사용자에게 결과 반환을 위한 처리
      }
      catch(e){...}
    }
     ....
     
     export const list = async ctx => {
       try {
         const posts = await Post.find().exec(); //model에 있는 기본 Post 내용들에서 찾아내기 위해 사용
         ...
       }
         catch(e){...}
    }

    整理する


    src/index.js:mongose接続
    src/api/index.js : const posts = require('./posts');src/api/posts/index.js:const postsCtrl = require('./posts.ctrl');、複数の関連CRUD関数の2番目のパラメータに接続
    src/api/posts/posts.ctrl.js:関連関数の説明、exports.write = ctx=>{...}src/models/posts.js:接続するモードとモデルを作成する
    子から親にインポートします.
    データベース・モデルのモデルをパブリッシュします.ctrlは、Koa-routerによって接続およびバンドル処理を継続する必要な関数動作処理を取得する.

    以前の内容