Azure Cosmos DB를 MongoDB로 Node.js에서 사용해보십시오.

MongoDB 이용을 검토해 조사하고 있어 발견했으므로 시험에 사용해 보겠습니다.
  • macOS High Sierra
  • Node.js v9.5.0
  • Mongoose v5.0.6

  • 입니다.

    Azure Cosmos DB





    우주감 있고 멋있다.

    기능은
    待機時間が非常に短く、極めてスケーラブルなアプリケーションを世界中どこでも実現する、NoSQL のネイティブ サポートが付いたデータベース
    Azure Cosmos DB は、グローバル分散と水平方向への拡張性を中心として一から構築されました。透過的なスケーリングとあらゆる場所のユーザーへのデータ レプリケーションにより、使い始めてすぐに任意の数の Azure リージョン全体でグローバル分散を実現できます。世界中でスループットとストレージを弾力的にスケーリングでき、お支払いは必要な分のみとなります。Azure Cosmos DB では、NoSQL の各オプションをネイティブでサポートしており、明確でわかりやすい複数の整合性モデルを提供しています。また、99 パーセントで 10 ミリ秒未満の待機時間を保証すると同時に、マルチホーム機能による高可用性と、世界中のあらゆる場所での短い待機時間を保証します。これらはすべて、業界トップレベルの包括的なサービス レベル アグリーメント (SLA) の対象となります。
    

    같다.

    AWS계도 GCP계도 이 손의 불평은 비슷하기 때문에 거기까지 신경쓰지 않는 녀석입니다()

    MongoDB로 사용



    작성은 Azure 사용하고 있는 사람이라면 통상의 포털 화면으로부터 자원 작성으로 갈 수 있습니다.

    API의 개소에서 MongoDB라고 선택할 수 있네요.



    Mongoose에서 사용



    Azure Cosmos DB: Azure Cosmos DB에서 Mongoose 프레임워크 사용 라고 하는 Azure 공식 튜토리얼은 있습니다만, 참고는 됩니다만, 그대로 해도 움직이지 않았으므로 mongoose의 공식 페이지를 참고로 해 쓰는 것이 좋을 것 같습니다.
    mkdir cosmos
    cd cosmos
    npm init -y
    npm i --save dotenv mongoose
    

    튜토리얼을 참고로 dotenv 에서 환경 변수 이용합니다.
    app.js 를 작성해 mongoose 공식 샘플을 참고로 접속 코드를 만들어 봅니다.

    app.js
    'use strict';
    
    const mongoose = require('mongoose');
    const dotenv = require('dotenv').config();
    
    const authParams = {
        auth:{
            user: process.env.COSMOSDB_USER,
            password: process.env.COSMOSDB_PASS,
        }
    };
    
    mongoose.connect(process.env.COSMOSDB_HOST,authParams);
    
    const Cat = mongoose.model('Cat', { name: String });
    const kitty = new Cat({ name: 'のびすけ' });
    kitty.save().then(() => console.log('meow'));
    
    .env 파일을 작성하여 사용자 이름 암호, 호스트 정보를 설명합니다.

    Azure Cosmos DB 관리 화면의 연결 문자열 화면에서 확인할 수 있습니다.

    COSMOSDB_USER=""
    COSMOSDB_PASS=""
    COSMOSDB_HOST="mongodb://xxxxxxxx.documents.azure.com:10255/?ssl=true&replicaSet=globaldb"
    

    실행하면 catsコレクション가 만들어지고 のびすけ라는 데이터가 저장됩니다.

    클라이언트 앱에서 데이터 확인을 이용해보기



    Robo 3T 을 이용해 보았습니다.



    제대로 のびすけ 라고 데이터가 들어가 있었습니다.

    소감



    아직 전혀 사용하고 있지 않지만 MongoDB의 셋업을 본질적으로 하면 꽤 힘들었던 인상이 있으므로, 셋업 시간이 거의 걸리지 않고 이용 개시할 수 있는 것은 매력적이었습니다.

    좀 더 사용해 나가지 않으면 좋은 점은 알기도 하지만 조금 만져 보겠습니다.

    보충: 나온 오류



    Azure 측의 자습서 코드를 사용하면 Error: Password contains an illegal unescaped character라는 오류가 발생합니다(2018년 2월 현재).
    Stack Over Flow의 Cannot connect to MongoDB in Azure 에 의하면 특수 문자열이 connect() 의 곳에서 사용할 수 없게 된 것 같고, 별도 이하와 같은 객체를 준비할 필요가 있다고 합니다. Mongoose 버전인지 Mongo DB 버전인지.
    auth: {
           user: 'username',
           password: 'p@ssword',
        }
    

    라는 느낌으로 이번 코드에 침착했습니다.

    좋은 웹페이지 즐겨찾기