2016-11-01 2 views
1

公式レルムのドキュメントを例にしましょう。私たちは車と人を持っています。レルム内の既に作成されたオブジェクトを参照するには?

const CarSchema = { 
    name: 'Car', 
    properties: { 
    id: {type: 'string'}, // UUID 
    make: {type: 'string'}, 
    model: {type: 'string'} 
    } 
}; 

const PersonSchema = { 
    name: 'Person', 
    properties: { 
    name: {type: 'string'}, 
    car: '' // Something here to reference on already created car?? 
    } 
}; 

たとえば、私は既にUUID id-sを持つ車をいくつか作成しました。今私はユーザーを作成したいと思います。 UIでは、フォームのように表示されます。ここでユーザー名を入力し、ドロップダウンから既に作成された車の1つを選択します。

すでに作成された車のリファレンス方法は?それはidを持つ文字列でなければならないのでしょうか?

+0

は、それが{ 'CarSchema' タイプを} be'べきではないでしょうか。 – Divers

+0

@Divers ok、そして人をどのように作り、 'car'の値をどうすべきでしょうか? –

+0

私はそれがJSでどのようになるのか分かりませんが、Javaではそのようなものになるはずです: 'CarSchema car = new CarSchema(12313、" Volvo "、" XC60 "); PersonSchema person =新しいPersonSchema( "Belarussian"、car); '適切なコンストラクタがある場合のためです。 – Divers

答えて

3

リンクはRealmの一流市民であるため、人為的な外部キーを導入する必要はありません。他のオブジェクトスキーマに直接リンクすることもできます。 JavaScriptベースのバインディングでは、以下に示すように、関連するオブジェクトスキーマの名前をtypeとして指定することで実現します。このようなモデルでは

const PersonSchema = { 
    name: 'Person', 
    properties: { 
    name: { type: 'string' }, 
    car: { type: 'Car' } // or just: 'Car' 
    } 
}; 

あなたは、下図のように取り付けた既存のCarPersonオブジェクトを作成することができます: `、:

const realm = … 
const volvo = realm.objects("Car").filtered("make = $0 AND model = $1", "Volvo", "XC60")[0]; 
const person = realm.create("Person", { 
    name: "Tim", 
    car: volvo, 
}); 
関連する問題