2016-03-29 19 views
1

私はorientdbで初めてです。下の例のように埋め込まれた埋め込み型を使用して深度の3レベルのドキュメントを挿入できるかどうかを知りたいと思います。私は成功しなかった私のデータのようないくつかの例を探しています。 例:私が見つけたOrientDBの埋め込み型の中に埋め込み型を挿入する

"p_partkey": 1, 
"p_name": "lace spring", 
"lineorder": [{ 
    "lo_revenue": 4282453, 
    "lo_orderdate": 19920603, 
    "customer": [{ 
     "c_nation": "JORDAN", 
     "c_address": "uZaxFV8o9IGgayUEWtPU1Xmw", 
     "c_mktsegment": "BUILDING|" 
    }], 
    "orderdate": [{ 
     "d_date": "June 3, 1992", 
     "d_datekey": 19920603, 
     "d_year": 1992 
    }]},{ 
    "lo_revenue": 46868767, 
    "lo_orderdate": 9987983, 
    "customer": [{ 
     "c_nation": "BRAZIL", 
     "c_address": "kjbnkjakjh", 
     "c_mktsegment": "BUILDING|" 
    }], 
    "orderdate": [{ 
     "d_date": "June 6, 1994", 
     "d_datekey": 19940606, 
     "d_year": 1994 
    }]}] 

すべての例では、埋め込まれた文書の一つのレベルのみを使用しています。私が使用してされてきた :

INSERT into part CONTENT {json data} 

しかし、それはlineorderにのみ1つの埋め込み型を作成します。

答えて

1

Iは

私は、これらのクエリを使用3クラス(A、B、C)を作成した:

insert into A content { "embedded_B" : { "@type":"d", "@class":"B", "name" :"myRecord_B", "embedded_C" : { "@type":"d", "@class":"C", "name" :"myRecord_C" }}} 

enter image description here

select embedded_B.name as name,embedded_B.type() as type from A 

enter image description here

select embedded_B.embedded_C.name as name,embedded_B.embedded_C.type() as type from A 

希望します。

+0

@Aleesandro Rotaあなたは挿入の前に、または挿入のところでクラスを作成しましたか? – Raphael

+0

@Raphaelフィールドのない挿入の前にクラスA、B、Cを作成しました –

+0

ありがとうございます。それは役に立ちません。 – Raphael

関連する問題