2017-07-13 12 views
0

私はレルム組織とチケットを持っています。組織には多くのチケットがあります。だから、組織を更新するには、それは次のようになります。レルム内の配列オブジェクトの更新

try { 
     realm.write(() => { 
      realm.create('Organization', { 
       id: organization.id, 
       name: organization.name, 
       ticket: downloadTickets(organization.id) 
      } 
      , true) 
     }) 
     console.log("inserting/updating ogranization") 
    } catch(err) { 
     console.warn(err) 
    } 

downloadTickets関数はオブジェクトの配列を返します。これは私の最初の書き込みで動作します。しかし、配列を更新したい場合、配列にオブジェクトを追加したいが、配列全体を上書きしない。現在の値を取得せずに、新しい値に追加してオブジェクトに戻すことなく、これをどうやって行うことができますか?それは遅すぎるようです。

答えて

0

trueパラメータにcreate()を使用すると、既存のオブジェクトのプロパティが上書きされます。必要なのは、既存のデータを変更することです。

これを行うには、元の配列を何らかの方法で参照する必要があります。新しいTicketpush()を新しい配列にコピーするか、または既存の配列でconcat()を使用して新しい配列を渡すことができます。

注:配列を参照しても、すべてがメモリにロードされるわけではありません。アレイの実際のデータは、明示的にアクセスするまではディスク上にのみ存在し、Realmはそれをディスクから読み取ります。新しいTicketを追加するためにアレイにアクセスすることは、高価な操作ではありません。

+0

ありがとうございます! .concatは私が探していたものでした。 –

関連する問題