使用没有主键的Realm更新对象

时间:2017-05-05 13:43:19

标签: react-native realm

在我的React-Native应用程序中,我需要更新一些对象,但我不能像教程那样做:

realm.write(() => {
 // Create a book object
 realm.create('Book', {id: 1, title: 'Recipes', price: 35});

 // Update book with new price keyed off the id
 realm.create('Book', {id: 1, price: 55}, true);
});

因为我的对象没有主键(我不希望它们有主键)

my try

this.state.realm.write(() => {
  this.state.realm.create('Bills', {type: this.state.billType,
  creditor: this.state.billCreditor, month: this.state.billMonth,
  year: this.state.billYear, price: this.state.billPrice}, true);
});

但是这个尝试显然会创建另一个对象^^

有人对我的问题有所了解吗?感谢所有=)

2 个答案:

答案 0 :(得分:1)

最后,我使用UUID作为主键^^“

https://www.npmjs.com/package/react-native-uuid

答案 1 :(得分:0)

目前,Realm不支持更新没有主键的对象。请参阅this GitHub问题。

如果您真的想要实现这一点,则必须从Realm中删除该对象,然后使用更新的值添加该对象。

但是,我不推荐这种方法。在大多数情况下创建主键是最佳解决方案,因此您应该重新考虑使用它。在大多数情况下,内置更新方法比没有使用主键可以编写的任何方法具有更好的性能。