2016-07-25 16 views
1

Lassen Sie uns sagen, dass ich eine Person wünschen, Leute zu finden, sie sind nicht mit verbunden, ich tun würde:

User.find({ _id: { $nin: req.user.connections }) 

Ich möchte jedoch nur höchstens 10 zufällige Dokumente aus dem Rück abrufen . In MongoDB, gibt es $ Beispiel:

{ $sample: { size: <positive integer> } } 

ich vorher noch nie Mongo benutzt habe, also bin ich nicht sicher, wie der Kette diese beiden zusammen, um für mich 10 zufällige Personen abgerufen werden der aktuelle Benutzer nicht verbunden .

Antwort

5

$sample ist eine Aggregation Betreiber, so benötigen Sie eine aggregate Pipeline, dass Ketten die beiden Operationen zusammen zu schaffen:

User.aggregate([ 
    { $match: { _id: { $nin: req.user.connections } } }, 
    { $sample: { size: 10 } } 
])