Mon document de utilisé pour ressembler à ceci:en utilisant le groupe MongoDB sur les documents intégrés
{
_id : 47cc67093475061e3d95369d,
Name : "A name",
Description : "Some description",
DisciplineCode : "105",
DisciplineName : "A Name",
OtherProperty : "Something"
}
Pour qui, la commande groupe suivant a travaillé, afin d'obtenir les DisciplineNames distincts et DisciplineCodes de mes documents
disciplines = db.result.group({
key: {DisciplineName:1, DisciplineCode:1},
reduce: function(obj, prev) { if (!obj.hasOwnProperty("DisciplineName")) {
prev.DisciplineName = obj.DisciplineName;
prev.DisciplineCode = obj.DisciplineCode;
}},
initial: { }
});
Cependant, mon document a changé à:
{
_id : 47cc67093475061e3d95369d,
Name : "A name",
Description : "Some description",
Discipline: {
Code : "105",
Name : "A Name"},
OtherProperty : "Something"
}
Comme vous pouvez le voir, Discipline
est un document intégré.
Comment puis-je modifier mon groupe de commande pour faire toujours le même?
Can vous confirmez que votre fonction de réduction est correcte? Si obj n'a pas de champ "disciplineName", définissez le champ de nom du document précédent sur une valeur qui n'existe pas? – Jenna