Hi,
I want to update an object in the database that does not have a primary key. Using https://realm.io/docs/react-native/latest/#updating-objects as my reference. I was expecting
'0': RealmObject { make: 'Chevy', model: 'Impala', miles: 100 } }
but instead got
'0': RealmObject { make: 'Chevy', model: 'Impala', miles: 99 }, miles: 100 }
What step am I missing to update the object to my expected value?
(on Node.js 6.9.1, realm 0.15.0)
Code:
var Realm = require('realm');
const CarSchema = {
name: 'Car',
properties: {
make: 'string',
model: 'string',
miles: { type: 'int', default: 0 },
}
};
let realm = new Realm({ schema: [CarSchema] });
// add some cars
console.log('Add some cars');
realm.write(() => {
realm.create('Car', {
make: 'Honda',
model: 'Civic',
miles: 750,
});
realm.create('Car', {
make: 'Chevy',
model: 'Nova',
miles: 116924,
});
realm.create('Car', {
make: 'Chevy',
model: 'Impala',
miles: 99,
});
});
// update the Impala
let impala = realm.objects('Car').filtered('model = "Impala"');
// log out the Impala
console.log(impala);
// update the miles
// using https://realm.io/docs/react-native/latest/#updating-objects
realm.write(() => {
impala.miles = 100;
});
// log out the Impala again
console.log(impala);
// EXPECTED: '0': RealmObject { make: 'Chevy', model: 'Impala', miles: 100 } }
// RECEIVED: '0': RealmObject { make: 'Chevy', model: 'Impala', miles: 99 }, miles: 100 }
filtered returns a Results object, not an individual object. Try changing:
let impala = realm.objects('Car').filtered('model = "Impala"');
to
let impala = realm.objects('Car').filtered('model = "Impala"')[0];
Perfect! Thanks!
Most helpful comment
filteredreturns aResultsobject, not an individual object. Try changing:let impala = realm.objects('Car').filtered('model = "Impala"');to
let impala = realm.objects('Car').filtered('model = "Impala"')[0];