J'essaie de compter le nombre d'éléments dans une liste de chaque document dans une collection, semblable à l'exemple ci-dessous. (https://docs.mongodb.com/manual/reference/operator/aggregation/size/#exp._S_size)requête d'agrégation Morphia pour obtenir la taille de la liste
db.inventory.aggregate(
[
{
$project: {
item: 1,
numberOfColors: { $size: "$colors" }
}
}
]
)
Cette requête retourneraient taille de la liste dans chaque document "couleurs".
Une requête équivalente morphia serait quelque chose comme ceci:
pipeline = ds.createAggregation(Abc.class)
.match(query)
.project(Projection.projection("count",
Projection.expression("$size","colors")));
Erreur sur l'exécution ci-dessus: java.lang.String ne peut pas être jeté à com.mongodb.DBObject
Je ne peux pas arriver à un équivalent requête morphia pour atteindre le même.
Toute aide à cet égard serait grandement appréciée.
Possible duplication de [Quelle est la bonne façon d'utiliser les opérateurs dans les pipelines d'agrégation Mongo avec Morphia] (https://stackoverflow.com/questions/45214057/what-is-the-correct-way-to-use-operators -in-mongo-agrégation-pipelines-with-mor) – Veeram
J'ai essayé les solutions mentionnées dans ce document, mais en vain. –