领域数据库删除对象包括子对象和列表?

时间:2016-11-30 18:27:35

标签: react-native realm

我正在使用反应原生境界。

删除对象似乎不会删除列表和列表项子对象和子列表。应该吗?

我必须递归遍历列表,并删除listItem对象和子列表,然后才能删除根对象列表。

我的解决方法:

function dbDeleteplan(plan) {
  if (null == plan) {
    return;
  }
  console.warn('Delete plan:', plan.name);
  realm.write(() => {
    console.log('dbg: dbDeleteplan:', plan);
    if(plan.itemList) {
      for(let i = 0; i < plan.itemList.length; ++i) {
        realm.delete(plan.itemList[i].position.coords);
        realm.delete(plan.itemList[i].position);
        realm.delete(plan.itemList[i].imageList);
        realm.delete(plan.itemList[i].itemList);
      }
    }
    realm.delete(plan.itemList);
    realm.delete(plan);
  });
}

我预计删除父对象会起作用但不会:

   realm.delete(plan);

是否有正确的方法来删除领域中的对象?

或许在删除旧对象之前,我正在创建一个新对象的异步问题?

提前致谢,

-Ed

1 个答案:

答案 0 :(得分:0)

可能这个解决方案有效!!

realm.objects('plan').filtered('plan==%@', VALUE).addListener((tanplan, changes) => {

            tanplan.forEach((realmObj,index) => {                           
                realm.delete(realmObj);             
            });

        });