2017-03-09 59 views
1

我是小白,當談到的MongoDB和貓鼬所以請原諒我...的MongoDB與貓鼬限制的子文檔

我使用與快速結點與貓鼬一起。我有一個包含大量子文檔的文檔,以至於在嘗試加載所有子文檔時我的服務器耗盡內存。所以我想選擇一個子文檔的最後30個項目。這裏是我現在,然後一個猜測,我想我要...

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

這裏是一個猜測

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

任何幫助將是真棒,在此先感謝! !

+0

你試過了嗎?這可能是正確的 –

+0

這看起來給我的前30,而不是最後30. :( – gregwinn

回答

2

你幾乎釘了它。

要獲得最後30個值,只需使用減號。在你的情況下,你可以這樣做:

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

希望它有幫助。

+0

謝謝,這工作完美! – gregwinn