3

パスに複数のオブジェクトが含まれている場合、データを削除するにはどうすればよいですか? gun.path('Saving_accounts').put(null) は、すべての普通預金口座を削除します。または、「削除された」オブジェクトを持つデータを反復処理するときに null エラーを処理する方法はありますか? 回答に役立つように、完全に機能する例を提供しています。これで銃のデータを作成するとします:

// localStorage.clear();
var gun = Gun();

////////////////////////////////////////////////////////////////// create record

var saving1 = gun.put({
    name: "Bank of America",
    accType: "Saving",
    last4: "5555",
    favorite: true,
    status: true,
    created: "some date created"
  });

var saving2 = gun.put({
    name: "Bank of America",
    accType: "Saving",
    last4: "4123",
    favorite: true,
    status: true,
    created: "some date created"
  });

var saving_accounts = gun.get('saving_accounts')
saving_accounts.set(saving1);
saving_accounts.set(saving2);

次に、次のような方法ですべての普通預金口座を照会できます。

const queryMultiple = (data_path) => {
  console.log("Query for: " + data_path);
  gun.get(data_path).map().val((name, ID) => {
    // console.log(ID);
    console.log(name.name, name.accType, ID);
  });
};
queryMultiple('saving_accounts');

gundb の質問herewiki gun.path('object3').put(null) に基づいてレコードを削除しようとしましたが、アプリケーション用に変更する方法がわかりません。普通預金口座パスには、複数の普通預金口座があります。したがって、特定の普通預金口座を削除したい場合は、ID で削除しますが、やり方が間違っていると思います。削除したいアカウントの ID が FesxPaup8gzuNSsLFlWXMKaL だとします。

// delete record
const deletebyID = (data_path, qID) => {
    console.log("DELETE record");
    gun.get(data_path).path(qID).put(null);
};

deletebyID('saving_accounts', 'FesxPaup8gzuNSsLFlWXMKaL');

しかし、.put(null)上記により、オブジェクト FesxPaup8gzuNSsLFlWXMKaL が null を指すようになり、すべての普通預金口座を再度リストするとqueryMultiple('saving_accounts');cannot read property name of null.

パスに複数のオブジェクトが含まれている場合、データを削除するにはどうすればよいですか?

補足: 最終的には、各普通預金口座の下に複数の普通預金口座のトランザクションをネストするので、誤って作成された口座トランザクションを削除するときに同じことを行う必要があります。また、普通預金口座を削除すると、その口座の取引もすべて自動的に削除/無効化されることを願っていますが、この最初のレイヤーでデータをいじって遊んでいました。

4

1 に答える 1