Realm-js: Unexpected results updating object React Native/Node.js

Created on 20 Nov 2016  路  2Comments  路  Source: realm/realm-js

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 }

Most helpful comment

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];

All 2 comments

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!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jmartindivmedianet picture jmartindivmedianet  路  3Comments

CrystalRanita picture CrystalRanita  路  3Comments

max-zu picture max-zu  路  3Comments

camslaz picture camslaz  路  4Comments

texas697 picture texas697  路  3Comments