ok, so again, global.set only stores the reference so its not writing 1500 objects (unless you have persistent storage then it will write the whole shebang to file when it flushes to file every 30s)
If you insist on looking for an alternative then you can use global.set("myobject.subobject",value)
BUT as Nick said in the post I linked to "If I had to guess, I'd say getting the whole object, then addressing the sub property directly then writing the whole object back would be mildly more efficient as you can let native JavaScript do the property lookup in the object, rather than have our code parse your property expression and dig into the object"
If you REALLY want an improvement - use a lookup object instead of searching an array.
e.g.
var devices = global.get("Devices") || {};
var device = devices[deviceId]; //Lookup a key instead of searching array
if(device) {
device.LatestFcntUp = latestFcntUp;
} else {
devices[deviceId] = {LatestFcntUp : latestFcntUp};
}
global.set("Devices", devices )
HOWEVER that said, remember, premature optimisation is the root of all evil - are you actually seeing an issue?