node.js의mongoose 사용

3045 단어 mongoosenode.js

콘셉트


Mongoose는 대상 문서 모델(ODM) 라이브러리로 노드의 원생 MongoDB 모듈을 더욱 최적화하고 봉인하며 더 많은 기능을 제공한다.mongoose의 장점은 다음과 같습니다.
  • 문서에 스키마 구조(Schema)를 만들 수 있습니다.
  • 모델의 객체/문서를 검증할 수 있습니다.
  • 데이터는 유형 전환을 통해 대상 모델로 전환할 수 있다.
  • 업무 논리 연결을 응용하기 위해 중간부품을 사용할 수 있다.
  • Node 오리지널 MongoDB보다 구동이 용이합니다.

  • Mongoos의 객체 개념은 다음과 같습니다.
  • Schema(모드 대상):Schema 대상의 정의는 데이터베이스에 있는 문서 구조를 제약한다
  • 모델: 모델 대상은 집합 중의 모든 문서의 표시로MongoDB 데이터베이스에서의 집합collection
  • 에 해당한다
  • Document: Document는 컬렉션의 특정 문서를 나타냅니다
  • .

    mongoose 설치

    npm i mongoose --savenpm install, npm install--save에 대한 차이점은https://blog.csdn.net/qq_3037...

    mongoose 기본 조작


    몬고우스 도입

    let mongoose = require("mongoose");

    연결 데이터베이스

    mongoose.connect('mongodb://user:pwd@ip:27017/database');

    이벤트 모니터

    let db = mongoose.connection;
    
    db.on('error',()=>{
        console.log(' ');
    });
    
    db.once('open',()=>{
        console.log(' ');
    });
    
    db.once('close',()=>{
        console.log(' ');
    });

    schema 및 모델

    let Schema = mongoose.Schema;
    
    let personSchema = new Schema({
        name:String,
        age:Number,
        sex:{
            type:String,
            default:"F"
        }
    });

    schema에 대한 학습은 다음과 같습니다.
  • 데이터베이스 schema:https://www.cnblogs.com/csnip...
  • mongoose에 대한 schema:https://www.jianshu.com/p/9ff...
  • let personModel = mongoose.model("persion",personSchema);

    crud 작업


    몬godb를 시작할 때 --auth 파라미터를 추가했기 때문에 삽입 작업은 사용자 권한을 검증해야 합니다.
    db.createUser({
            user: "test01",
            pwd: "test01",
            roles: [{ role: "readWrite", db: "test" }]
     })
    // 
    /*personModel.create({
        name:"t01",
        age:22
    },(err)=>{
        if(!err){
            console.log(" ");
        }else{
            throw err;
        }
    });*/
    
    // 
    //update : DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead., updateOne
    /*personModel.updateOne({_id:"5c2d7c0bda87713ff850c6ea"},{$set:{name:"t02"}},(err)=>{
        if(err){
            throw err;
        }
    });*/
    
    /*personModel.updateOne({_id:"5c2d7af402a3462c7c212b58"},{$set:{name:"t01"}},(err)=>{
        if(err){
            throw err;
        }
    });*/
    
    // 
    /*personModel.find({},(err,docs)=>{
        if(!err){
            console.log(docs);
        }else{
            throw err;
        }
    });*/
    
    
    /*personModel.find({name:"t01"},(err,docs)=>{
        if(!err){
            console.log(docs);
        }else{
            throw err;
        }
    });*/
    
    /*personModel.find({},"name age _id",{skip:1,limit:2},(err,docs)=>{
        if(!err){
            console.log(docs);
        }else{
            throw err;
        }
    });*/
    
    // 
    /*personModel.remove({name:"t03"},(err)=>{
        if(!err){
            console.log(" ");
        }
    });*/

    좋은 웹페이지 즐겨찾기