MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Obtenir des lignes en double sur la jointure gauche dans les rapports Birt

Ajouter un nouvel ensemble de données pour DeviceEventObject

Ajoutez la fonction d'agrégation suivante dans le générateur d'expression de commande.

La fonction ci-dessous $lookup les données du niveau de priorité du code d'erreur d'état basé sur terminalId suivi de $unwind pour aplatir les données.

$group les données aplaties sur terminalId pour accumuler les niveaux de priorité distincts pour un identifiant de terminal.

$project pour compter les niveaux de priorité distincts

[{$lookup:{
        from: "devicestatuserrorcodeprioirtylevel", // name of the collection
        localField: "terminal.terminalId",
        foreignField: "terminal.terminalId",
        as: "dsecpl"
}},
{$unwind:"$dsecpl"},
{$group:{
    "_id":"$terminal.terminalId", 
    "prioritylevels":{"$addToSet":"$dsecpl.priorityLevel"},
    "events":{"$push":"$event"}
}},
{"$project":{"prioritylevelcount":{"$size":"$prioritylevels"}, "events": 1} }
]

Déplacez tous les champs disponibles vers la colonne des champs sélectionnés.

Aperçu des résultats.