du hast es fast geschafft.
Um die letzten 30 Werte zu erhalten, verwenden Sie stattdessen einfach Minus. In Ihrem Fall können Sie so etwas tun:
Device.findOne({ device_id: deviceId }, { movements: { $slice: -30 } }, (err, device) => {
....
})
Hoffe es hat geholfen.