有Mongoose限制子文档的MongoDB

谈到MongoDB和Mongoose,我是一个noob,所以请原谅我…

我正在使用Express和Mongoose一起使用Node。 我有一个大量的子文档的文档,以至于当我试图加载所有的子文档时,我的服务器耗尽内存。 所以我想select一个子文档的最后30个项目。 这是我现在所拥有的,然后猜测我想要的是什么…

Device.findOne({ device_id: deviceId }, (err, device) => { .... }) 

这是一个猜测

 Device.findOne({ device_id: deviceId }, { movements: { $slice: 30 } }, (err, device) => { .... }) 

任何帮助将是可怕的,在此先感谢!

你几乎钉了它。

要获得最后的30个值,只需使用减号。 在你的情况下,你可以做一些事情:

 Device.findOne({ device_id: deviceId }, { movements: { $slice: -30 } }, (err, device) => { .... }) 

希望它有帮助。