J'ai fait un petit travail autour comme je l'ai besoin d'interroger la taille du tableau et revenir si elle était supérieure à 0, mais pourrait être quelque chose de 1 à 3.
Voici ma solution était:
db.test.find($or : [{$field : { $exists : true, $size : 1}},
{$field : { $exists : true, $size : 2}},
{$field : { $exists : true, $size : 3}}, ])
Cela renvoie essentiellement un document lorsque l'attribut existe et la taille est de 1, 2 ou 3. L'utilisateur peut ajouter des déclarations et augmentation si elles sont à la recherche d'un taille spécifique ou dans une gamme. Je sais que ce n'est pas parfait mais cela a fonctionné et était relativement rapide. J'ai seulement eu 1-3 tailles dans mon attribut donc cette solution a fonctionné.
Je ne pense pas que vous pouvez utiliser un opérateur de taille $ exactement comme ceci avec $ group. $ size ne fait pas partie des [opérateurs d'agrégation] (http://docs.mongodb.org/manual/reference/operator/agrégation-group/). Au lieu de cela, vous pouvez utiliser la projection si vous n'avez pas besoin groupement: db.test.aggregate ({projet $: nombre: {$ size: "$ tags"}}) OU si vous avez besoin de regroupement , comme ceci: db.test.aggregate ({$ group: {_id: "$ userName", compte: {$ sum: {$ taille: "$ tags"}}}}) –
intéressant que personne ne se soit plaint à ce sujet avant, merci – anvarik
Comment est-il possible d'obtenir quand j'ai quelque chose comme ceci: {nom d'utilisateur: 'Alex', tags: [['C#', 'Java', 'C++']]} Comment pouvons-nous obtenir la longueur/taille des étiquettes maintenant? – rkatkam