skoro jsi to trefil.
Chcete-li získat posledních 30 hodnot, použijte místo toho mínus. Ve vašem případě můžete udělat něco jako:
Device.findOne({ device_id: deviceId }, { movements: { $slice: -30 } }, (err, device) => {
....
})
Doufám, že to pomohlo.