2011-12-04 1 views
0

を削除します。しかし、削除/更新するオブジェクトのbenefit.idを知っているので、従業員オブジェクトのbenefitsリストから特定のオブジェクトを削除/更新する方法について少し混乱しますか?は、更新する方法/埋め込まれたオブジェクトのドメインモデル次を考える

このリストは実行時に多数のオブジェクトを保持する可能性があるため、単一のオブジェクトを更新できるように完全な利点リストを反復したくありません。 empオブジェクトを取得し、目的のオブジェクトが見つかるまでリストを反復し、更新してempオブジェクトを保存するよりも良い方法はありますか?

答えて

2

この場合、benefitsMap[Int, Benefits]である必要があります。

Mapを使用すると、更新/削除は線形時間の代わりにO(1)になります。

Listランダムにアクセスして要素を更新する必要がある場合は、適切ではありません。

+0

感謝をお勧めしたい、私がリストに更新を必要としないように、私のデータ構造を変更しました。私は今追加するだけです。 –

0

私は(あなたがMongoDBのためサラッを使用していると仮定)カスバとサラッについてこのarticleに探して

def removeBenefit(empNum : Int, benefitId: Int)= { 
    val updateQuery = $pull("benefits " -> MongoDBObject("id" -> benefitId)) 
    val query = MongoDBObject("empNum " -> empNum) 
    modify(query, updateQuery) // your findAndModify operation goes here 
} 
関連する問題