javascript - 如何在javascript中修改realm中的现有记录

标签 javascript react-native realm

我想更新特定架构的现有数据中的值

class Car {}
Car.schema = {
  name: 'Car',
  properties: {
    make:  'string',
  }
};
let realm = new Realm({schema: [Car,]});
realm.write(() => {
  let myCar = realm.create('Car', {
    make: 'Ford',
    model: 'Focus',
    miles: 2000,
  });
});
realm.write(() => {
  let myCar = realm.create('Car', {
    make: 'Ford',
    model: 'Focus',
    miles: 2000,
  });
});
realm.write(() => {
  let myCar = realm.create('Car', {
    model: 'Focus',
  });
})

现在,如果我想更新多条记录中的“模型”属性,我该怎么做。

最佳答案

要更新多个记录的属性,您需要从 Realm 获取记录,然后循环访问它们以进行更改。因此,在所有写入之后(确保回调函数已经运行),您将执行类似的操作。

const cars = realm.objects('Car');
realm.write(() => {
  cars.forEach(car => {
    // apply your changes to car here
    car.model = 'Some New Model';
  });
});

需要注意的是,由于这些写入发生在回调函数中,因此您需要确保此代码在示例中编写的回调完成后运行。

此外,我假设上面的三个单独的 realm.write 方法仅作为示例,但如果您需要一次向 Realm 写入多个内容,请确保将所有写入合并到如果可能的话,写入单个realm.write。通过上面的几个调用,不会出现任何明显的性能问题,但是当您尝试一次写入数百个调用时,您将遇到相当严重的瓶颈。

另一方面,如果您正在寻找一种简单的方法来管理监听 Realm 数据的变化,我建议您看看 react-native-realm全面披露:这是我编写的一个库,但我发现它很有帮助,因为不必记住在每个组件安装和卸载时连接和拆卸事件监听器。

关于javascript - 如何在javascript中修改realm中的现有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45087591/

相关文章:

javascript - 使用纯 CSS 进行图像平铺

javascript: html5 获取和设置数据-*

javascript - 这里映射 API JS 聚类 : need relative values instead number of clustered weight

android - react-native 中的异步通知

react-native - Xcode 10 Build Location -> Per-configuration Build Products Path

realm - 如何强制 NSOperationQueue 在一个线程上运行?

javascript - 在谷歌地图标记中显示 JSON 数据

reactjs - react 原生 jest.preset.js 文件丢失错误

swift - 结果不正确的 Realm 结果对象(iOS,Swift)

ios - cellForRowAt indexPath 中 Realm 对象的 UITableView 性能