【问题标题】:Realm React Native: How remove element from object's nested array with some conditionRealm React Native:如何在某些条件下从对象的嵌套数组中删除元素
【发布时间】:2018-03-12 12:34:16
【问题描述】:

我是 React native 的新手,并试图将 Realm 集成为客户端数据库。 我有 2 个架构:

export const CAR_SCHEMA = {
  name: 'Car',
  properties: {
    color: 'string',
    model: 'string',
  }
};

export const PERSONS_SCHEMA = {
  name: 'Person',
  primaryKey: 'id',
  properties: {
    id: 'int',
    firstName: 'string',
    lastName: 'string'
    cars: 'Cars[]'
  }
};

我的问题基本上是指如何从 Car.model='Honda' 的“Person”中删除“Car”?我找不到任何有关从对象的嵌套数组中删除元素的文档。

【问题讨论】:

    标签: react-native realm realm-mobile-platform


    【解决方案1】:

    从数组中删除但将项目保留在 Realm 中:

    realm.write(() => {
        let person = realm.objectForPrimaryKey('person', personId);
        let carsOfPerson = person.cars;
    
        var i = carsOfPerson.length - 1;
        while(i >= 0) {
            if(carsOfPerson[i].model == "Honda") {
                carsOfPerson.splice(i, 1);
            }
            i--;
        }
    });
    

    通过从 Realm 中删除项目来从数组中删除:

    realm.write(() => {
        let person = realm.objectForPrimaryKey('person', personId);
        let carsOfPerson = person.cars;
        let hondasOfPerson = carsOfPerson.filtered('model = "HONDA"')
        realm.delete(hondasOfPerson)
    });
    

    【讨论】:

    • @Arsen Alexanyan,这个答案对你有用..?
    • 好吧,我似乎已经回答了这个问题......?
    • 这仍然没有记录在 Realm 文档中:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多