MongoDB使用Mongoose限制子文档

时间:2017-03-09 01:58:06

标签: node.js mongodb mongoose

对于MongoDB和Mongoose,我是一个菜鸟,所以请原谅我......

我使用Node with Express和Mongoose。我有一个包含大量子文档的文档,以至于我的服务器在尝试加载所有子文档时内存不足。所以我想选择子文档的最后30项。这就是我现在所拥有的,然后猜测我想要的是什么......

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

这是一个猜测

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

任何帮助都会很棒,提前谢谢!!!

1 个答案:

答案 0 :(得分:2)

你几乎钉了它。

要获取最后30个值,只需使用减号。在您的情况下,您可以执行以下操作:

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

希望它有所帮助。