2017-12-21 5 views
0

Ich wollte einige verschiedene Werte nach der Abfrage der Sammlung für bestimmte Werte suchen.Mungo: Verkettung distinct() mit find()

ZB: Mein Modell ist das von Studenten. Felder in jedem Dokument sind Name, Thema, Marken.

Jetzt möchte ich die verschiedenen Fächer für einen Schüler namens "Mark" bekommen. Ich habe versucht: students.find({"name":"Mark"}).distinct("subject") Das gibt mir einen Fehler, dass db.getCollection(...).find(...).distinct is not a function

Ich verstehe, dass dies mit aggregrate Pipeline erreicht werden kann, aber die Frage ist, warum können diese beide verkettet werden?

+0

Wenn die unten Antwort arbeitete für Sie beziehen. Bitte achten Sie darauf, es zu akzeptieren. –

Antwort

2

Wie in der Mongoose API docuemtation erwähnt, können Sie so etwas wie folgt verwenden:

distinct(field, conditions) 

so in Ihrem Fall wäre es so etwas wie dieses:

students.distinct("subject", {"name":"Mark"}) 

Wenn Sie versuchen, zu tun das gleiche in mongo-shell. Sie können dies versuchen:

db.runCommand({ 
      distinct : "students", 
      key : "subject", 
      query : {"name":"Mark"} 
}) 

Für distinct Befehl können Sie die MongoDB documentation