2017-03-09 25 views
1

Ich bin ein noob, wenn es um MongoDB und Mongoose kommt so verzeihen Sie mir bitte ...MongoDB mit Mongoose Grenze Subdokumente

I Knoten mit Express verwende zusammen mit Mungo. Ich habe ein Dokument mit einer Menge von Filialdokumenten, so dass mein Server nicht genügend Arbeitsspeicher hat, wenn alle Filialdokumente geladen werden sollen. Ich möchte also die letzten 30 Elemente eines Filialdokuments auswählen. Hier ist, was ich jetzt haben, und dann eine Vermutung, was ich denke, ich möchte ...

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

Hier ist eine Vermutung

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

Jede Hilfe wäre genial, danke im voraus !! !

+0

Haben Sie es versucht? Es könnte richtig sein –

+0

Das sieht aus, um mir die ersten 30 und nicht die letzten 30 zu geben :( – gregwinn

Antwort

2

Sie fast genagelt es.

Um die letzten 30 Werte zu erhalten, verwenden Sie stattdessen Minus. In Ihrem Fall können Sie etwas tun wie:

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

Ich hoffe, es hat geholfen.

+0

Danke, das hat perfekt funktioniert !!! – gregwinn

Verwandte Themen