почти успяхте.
За да получите последните 30 стойности, просто използвайте минус вместо това. Във вашия случай можете да направите нещо като:
Device.findOne({ device_id: deviceId }, { movements: { $slice: -30 } }, (err, device) => {
....
})
Надяваме се, че помогна.