Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

CRUD - Update - Node.js SDK

項目一覧

  • オブジェクトの更新
  • オブジェクトのアップサート
  • コレクションの一括更新

書込みトランザクション内で他の JavaScript オブジェクトをアップデートするのと同じ方法で、Realm オブジェクトのプロパティを追加、変更、または削除できます。

// Open a transaction.
realm.write(() => {
// Get a dog to update.
const dog = realm.objects("Dog")[0];
// Update some properties on the instance.
// These changes are saved to the realm.
dog.name = "Maximilian";
dog.age += 1;
});

Tip

関連オブジェクトと埋め込みオブジェクトの更新

埋め込みオブジェクト または 関連オブジェクト のプロパティを更新するには、 ドット表記または括弧表記 でプロパティを変更します。 : 通常のネストされたオブジェクト内にある場合と同様に。

オブジェクトをアップサートするには、更新モードを modifiedに設定してRealm.create()を呼び出します。 この操作では、指定されたプライマリキーを持つ新しいオブジェクトを挿入するか、そのプライマリキーをすでに持っている既存のオブジェクトを更新します。

realm.write(() => {
// Add a new person to the realm. Since nobody with ID 1234
// has been added yet, this adds the instance to the realm.
person = realm.create(
"Person",
{ _id: 1234, name: "Joe", age: 40 },
"modified"
);
// If an object exists, setting the third parameter (`updateMode`) to
// "modified" only updates properties that have changed, resulting in
// faster operations.
person = realm.create(
"Person",
{ _id: 1234, name: "Joseph", age: 40 },
"modified"
);
});

オブジェクトのコレクションにアップデートを適用するには、コレクションに対して反復処理(例: )。ループ内で、各オブジェクトを個別に更新します。

realm.write(() => {
// Create someone to take care of some dogs.
const person = realm.create("Person", { name: "Ali" });
// Find dogs younger than 2.
const puppies = realm.objects("Dog").filtered("age < 2");
// Loop through to update.
for (const puppy of puppies) {
// Give all puppies to Ali.
puppy.owner = person;
}
});

注意

逆の関係

Dog.ownerからPerson.dogsへの逆関係の結果、Realm は、子をパーティションの所有者として設定するたびに、エイリアスの犬のリストを自動的に更新します。

戻る

読み取り