1

私は OrientDB の世界に慣れていないので、本番環境で OrientDB/OrientJS を使用したいと思っています。

関連するドキュメントを読んだ後、OrientJS で「クラスター」機能を使用することに戸惑いました。機能はCREATE CLASS、「 」、「ALTER CLASS ADDCLUSTER」、「create records in the specified cluster」、「select records from clusters」、「LiveQuery」などに含まれます。

これらの質問に光を当ててください。

4

2 に答える 2

1

クラスター機能に関するリクエストを試すために、DB を作成しました。

var OrientDB = require('orientjs');

var server = OrientDB({
    host: 'localhost',
    port: 2424,
    username: 'root',
    password: 'root'
});

var db = server.use({
    name: 'OrientJStest',
    username: 'root',
    password: 'root'
});
  1. クラスの作成 ( Place):

    db.class.create('Place', 'V')
        .then(function (Class) {
            console.log("Created class "+Class.name);
    });
    

    出力:

    Created class Place
    
  2. プロパティの作成 ( Name):

    db.class.get('Place')
        .then(function (Class) {
        console.log('Class: ' + Class.name);
        Class.property.create({
            name: 'name',
            type: 'String'
        })
        .then(function (newProp) {
            console.log('Property created: ' + newProp.name);
        });
    });
    

    出力:

    Class: Place
    Property created: name
    
  3. ALTER CLASS ( Place) ADDCLUSTER ( place2):

    db.query('ALTER CLASS Place ADDCLUSTER place2')
        .then(function (cluster) {
            console.log(cluster);
    });
    
  4. クラスターに挿入 ( place):

    db.insert().into('cluster:place')
        .set({name:'London'}).all()
        .then(function (record) {
            console.log('Created record: ',record);
    });
    

    出力:

    Created record:  [ { '@type': 'd',
        '@class': 'Place',
        name: 'London',
        '@rid': { [String: '#15:0'] cluster: 15, position: 0 },
        '@version': 1 } ]
    
  5. クラスターに挿入 ( place2):

    db.insert().into('cluster:place2')
        .set({name:'Manchester'}).all()
        .then(function (record) {
            console.log('Created record: ',record);
    });
    

    出力:

    Created record:  [ { '@type': 'd',
        '@class': 'Place',
        name: 'Manchester',
        '@rid': { [String: '#16:0'] cluster: 16, position: 0 },
        '@version': 1 } ]
    
  6. クラスターから選択 ( place):

    db.select().from('cluster:place').all()
        .then(function (vertex) {
            console.log('Vertexes found: ',vertex);
    });
    

    出力:

    Vertexes found:  [ { '@type': 'd',
        '@class': 'Place',
        name: 'London',
        '@rid': { [String: '#15:0'] cluster: 15, position: 0 },
        '@version': 1 } ]
    
  7. クラスターから選択 ( place2):

    db.select().from('cluster:place2').all()
        .then(function (vertex) {
            console.log('Vertexes found: ',vertex);
    });
    

    出力:

    Vertexes found:  [ { '@type': 'd',
        '@class': 'Place',
        name: 'Manchester',
        '@rid': { [String: '#16:0'] cluster: 16, position: 0 },
        '@version': 1 } ]
    
  8. クラスのすべてのクラスターから選択Place:

    db.select().from('Place').all()
        .then(function (vertex) {
            console.log('Vertexes found: ',vertex);
    });
    

    出力:

    Vertexes found:  [ { '@type': 'd',
        '@class': 'Place',
        name: 'London',
        '@rid': { [String: '#15:0'] cluster: 15, position: 0 },
        '@version': 1 },
      { '@type': 'd',
        '@class': 'Place',
        name: 'Manchester',
        '@rid': { [String: '#16:0'] cluster: 16, position: 0 },
        '@version': 1 } ]
    

ご覧のとおり、頂点は同じクラスにありますが、異なるクラスターにあります。

それが役に立てば幸い

于 2016-04-13T07:29:58.137 に答える
0

ドキュメントによると、クラスターは「レコードをグループ化するための非常に一般的な方法です」。デフォルトでは、クラスとクラスターの関係は 1:1 であり、作成された各クラスはその相対クラスターによって作成されます。新しいレコード/ドキュメント/頂点/エッジを配置するクラスターをいつでも指定できます。それでは、文字ごとに 1 つのクラスターを作成してクラスに追加しましょう。例:

create cluster employee_a // cluster id = 12 alter class Employee addcluster 12

create cluster employee_b // cluster id = 13 alter class Employee addcluster 13

create cluster employee_c // cluster id = 14 alter class Employee addcluster 14

クラスターを管理する方法は、ニーズによって異なります。次に、選択した戦略に従って、新しい頂点がそれに応じて保存されます (例: 「ラウンド ロビン」を使用して、クラスター 12 に保存された 1 つの頂点、クラスター 13 に保存された 1 つの頂点、クラスター 14 に保存された 1 つの頂点。

特定のクラスターに存在するデータを取得するには: Cluster:12 から選択します。

于 2016-03-14T09:52:26.367 に答える