当我的路径包含多个对象时如何删除数据?gun.path('saving_accounts').put(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 问题和wiki 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
.
当我的路径包含多个对象时如何删除数据?
旁注:最终我将为每个储蓄账户下的储蓄账户嵌套多个交易,因此在删除错误进行的账户交易时我将不得不做同样的事情。也希望当我删除一个储蓄账户时,它也会自动删除/清空所有账户交易,但我还没有过去在第一层玩数据。