Spring-Data-Mongodb fragt mehrere Klassen ab, die in derselben Sammlung gespeichert sind

Mit Spring-Data können Sie mit der Annotation @Document angeben, in welcher Sammlung das Objekt gespeichert werden soll. Angenommen, ich habe zwei Klassen, Schüler und Lehrer, die beide in die Personensammlung aufgenommen wurden. Wenn ich den folgenden Code ausführe:

<code>mongo.find(new Query(), Teacher.class);
</code>

Das Ergebnis enthält sowohl Schüler als auch Lehrer. In den von Spring-Data erstellten Daten enthält jedes Dokument ein "_class" -Feld, das angibt, von welcher Klasse es beibehalten wird.

Dieses Feld wird in find nicht als Filter verwendet, um nur Teacher? Wie frage ich nur nach einem anderen Lehrer als diesen ab:

<code>mongo.find(new Query().addCriteria(where("_class").is(Teacher.class.getCanonicalName()), Teacher.class);
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage