0

コンテナー内にアイテムがネストされたレルム データベースを作成しようとしています。これは、コンテナがアイテムと他のコンテナの両方を内部に持つことができる標準的なファイルシステムのように動作します。このタイプの構造を作成するにはどうすればよいですか? これらのスキーマを設定しました:

const ItemSchema = {
    name: 'Item',
    primaryKey: 'id',
    properties: {
        id:         {type: 'string', indexed: true},
        title:      'string',
        createdAt:  'date',
        updatedAt:  'date',
        picture:    {type: 'data', optional: true},
        parent:     {type: 'Container', optional: true},
    }
};
const ContainerSchema = {
    name: 'Container',
    primaryKey: 'id',
    properties: {
        id:         {type:'string', indexed:true},
        title:      'string',
        createdAt:  'date',
        updatedAt:  'date',
        parent:     {type: 'Container', optional: true},
        childContainers: {type: 'list', objectType: 'Container'},
        childItems: {type: 'list', objectType: 'Item'},
    }
};

アイテム用にもこのモデルをセットアップしましたが、コンテナ用にはまだ作成していません。

class ItemModel {
    constructor(title, children) {
        this.id = Utils.guid();
        this.title = title;
        this.children = children;
        this.createdAt = new Date();
        this.updatedAt = new Date();
    }
}

では、実際にデータベースにデータを入力し、親と子を既存のアイテムに割り当てるにはどうすればよいでしょうか? 私はアイテムを作成するためにこれをしなければならないことを知っています:

let item = new ItemModel('testItem')
db.write(() => {
            item.updatedAt = new Date();
            db.create('Item', item);
        })

しかし、その後どこに行くのかわかりません。レルムのドキュメントでは、次の例を示しています。

carList.push({make: 'Honda', model: 'Accord', miles: 100});

しかし、コンテナを作成しdb.createたら、既存のアイテムをその子として追加するにはどうすればよいですか (ドキュメントが示すように新しいアイテムを宣言しないでください)。

4

1 に答える 1