Couchbase에서 테스트 데이터 node를 만듭니다.각본

4573 단어 Node.jsCouchbase

Couchbase에서 테스트 데이터 node를 만듭니다.각본


며칠 전에 설치된 Couchbase에 테스트 데이터를 등록합니다.
대량의 데이터에 대한 투입은 표준 CLI 도구cbdocloader를 사용하면 완성할 수 있을 것 같지만, 내가 어떻게 알았는지, node.js로 만들어 봤어요.
스크립트도 지허브에 공개됐다.
fujisan3/node.js-scripts

add-couchbase-data1.js

  • 제작건수 변경i < 1000부분
  • age의 값은 무작위로 생성됩니다(적당히 편집하십시오)
  • 모듈 사용

  • couchbasecouchbase/couchnodeCouchbase 표준 라이브러리
  • crypt 등록을 위한 유일한 키 만들기
  • async 겸용 학습의 비동기 제어
  • 설치하다.


    (node.js 설치)
    1. 적합한 디렉터리 만들기
    2.package.json 파일 만들기
    package.json
    {
      "devDependencies": {
        "couchbase": "*",
        "crypto": "*",
        "async": "*"
      }
    }
    
    3. npm 설치에 의존 모듈 설치
    4. 이 디렉토리에서dd-couchbase-data 1.js 파일 설정

    실행

    # node add-couchbase-data1

    각본

    var couchbase = require('couchbase');
    var crypto = require('crypto');
    var async = require('async');
    
    function randomInt (low, high) {
        return Math.floor(Math.random() * (high - low + 1) + low);
    }
    
    function md5String (src) {
        var md5hash = crypto.createHash('md5');
        md5hash.update(src, 'UTF8');
        return md5hash.digest('hex');
    };
    
    /*
    Data Format
    ---------------
    key = MD5 Hash from DocumentData
    doc =
    {
        "user" : "user-"[1=>i]
        "age" : random[10-90]
    }
    ---------------
    */
    var destinationString = 'localhost:8091';
    var cluster = new couchbase.Cluster(destinationString);
    var bucket = cluster.openBucket('default', function (err) {
        if (err) {
            console.log('Connection Error:', err);
            throw err;
        } else {
            var counter = [];
            for (var i = 0; i < 1000; i++) {
              counter[i] = i;
            }
            async.eachSeries(counter, function(i, next) {
    
                doc = "{\n";
                doc = doc + "\"user\" : \"user-" + (i+1) + "\" , \n";
                doc = doc + "\"age\" : \"" + randomInt(10, 90) + "\"\n";
                doc = doc + "}\n";
    
                key = md5String(doc);
                console.log("key=" + key);
                console.log("doc=" + doc);
    
                bucket.upsert(key, doc, function(err, result) {
                    if (err) {
                        console.log('Insert Error!' + (i+1));
                        throw err;
                    } else {
                    }
                });
                console.log('Inserted : ' + (i+1));
                next();
    
            }, function(err) {
                console.log('Finished!');
                bucket.disconnect();
            });
        }
    });
    

    실행 예


    등록했어.이런 느낌.
    key=3385b5a19bc14f744aa00d34d3785ce0
    doc={
    "user" : "user-1" ,
    "age" : "16"
    }
    
    Inserted : 1
    key=41318a900e67b19efc7aec70831c329e
    doc={
    "user" : "user-2" ,
    "age" : "38"
    }
    
    Inserted : 2
    key=e49f5942dc10f9c8e95d538fd4cba305
    doc={
    "user" : "user-3" ,
    "age" : "55"
    }
    
    Inserted : 3
    Finished!
    

    말은 그렇지만


    Couchbase에서 유일한 열쇠를 만들어야 하는 것은 매우 번거롭다.몬godb라면 JSON만 가입하면 되니까 편해요.뭐 좋은 방법 있어요?

    좋은 웹페이지 즐겨찾기