Ich versuche, die Anzahl der Elemente in einer Liste jedes Dokuments in einer Sammlung zu zählen, ähnlich wie im folgenden Beispiel. (https://docs.mongodb.com/manual/reference/operator/aggregation/size/#exp._S_size)Morphia Aggregationsabfrage, um die Größe der Liste zu erhalten
db.inventory.aggregate(
[
{
$project: {
item: 1,
numberOfColors: { $size: "$colors" }
}
}
]
)
Diese Abfrage würde zurückkehren Größe Liste "Farben" in jedem Dokument.
Eine äquivalente Morphium Abfrage würde wie folgt sein:
pipeline = ds.createAggregation(Abc.class)
.match(query)
.project(Projection.projection("count",
Projection.expression("$size","colors")));
Fehler bei der Ausführung von oben: java.lang.String kann nicht auf com.mongodb.DBObject gegossen werden
Ich bin nicht in der Lage auf ein Äquivalent zu kommen Morphia-Abfrage, um dasselbe zu erreichen.
Jede Hilfe in dieser Hinsicht würde sehr geschätzt werden.
Mögliches Duplikat von [Was ist der korrekte Weg, um Operatoren in Mongo-Aggregationspipelines mit Morphia zu verwenden] (https://stackoverflow.com/questions/45214057/what-is-the-correct-way-to-use-operators -in-mongo-aggregation-pipelines-with-mor) – Veeram
Ich habe die genannten Lösungen ausprobiert, aber vergebens. –