我想更新特定架构的现有数据中的值
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/