Anda hampir berhasil.
Untuk mendapatkan 30 nilai terakhir, cukup gunakan minus saja. Dalam kasus Anda, Anda dapat melakukan sesuatu seperti:
Device.findOne({ device_id: deviceId }, { movements: { $slice: -30 } }, (err, device) => {
....
})
Semoga membantu.