Je suis un novice MongoDB. J'essaie de regrouper les données d'un document qui fonctionne. Mais je veux maintenant ajouter une colonne contenant des données statiques. Par exemple, je pourrais écrire quelque chose comme ça en SQL.Groupe Mongodb par colonne none inexistante
select e.dptId, count(e.empId), 'foo' as foo
from employee e
group by e.dptId, 'foo'
J'ai essayé,
db.employee.aggregate(
{ $group: {
_id: { dptId: '$dptId', foo: 'foo' },
empCount: { $sum: 1 }
}}
);
qui me donne « exception: les références de chemin sur le terrain doivent être préfixées avec un préfixe « $ » Je ne peux pas avec $, car ce serait un champ. . référence
J'ai aussi essayé,
db.employee.aggregate(
{ $group: {
_id: { dptId: '$dptId' },
empCount: { $sum: 1 },
foo: 'foo'
}}
);
qui me donne « exception: le champ global du groupe 'temp' doit être défini comme une expression à l'intérieur d'un objet ".
J'ai essayé de jouer avec des accolades, sans accolades (comme indiqué), etc. Pas de chance. Est-ce même possible en mongodb?
Merci pour votre réponse. Le premier, où nous essayons de faire partie de _id, échoue avec 'Jeton inattendu} même si j'ai copié et re-vérifié le script encore et encore. Tous les {et} correspondent. Si je supprime la partie foo, cela fonctionne correctement. Quant à concat, je ne peux pas l'utiliser, car il ne fait pas partie de l'opérateur du groupe. – etrast81
'$ concat' peut certainement fonctionner avec $ group. J'ai développé le code. – WiredPrairie
En outre, j'ai omis accidentellement les marqueurs de tableau '[' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'isNull' quand j'ai tapé le code. – WiredPrairie