Mongo db agrégation de plusieurs conditions
Je veux un projet de collecte de l'application de l'exportation d'une valeur uniquement si un champ est à l'intérieur d'une plage.
Sorte de:
db.workouts.aggregate({
$match: { user_id: ObjectId(".....") }
},
{
$project: {
'20': { $cond: [ {$gt: [ "$avg_intensity", 20]} , '$total_volume', 0] }
}
})
J'ai besoin d'obtenir la valeur uniquement si le avg_intensity est à l'intérieur d'une certaine fourchette. Je fais alors le groupe et la somme sur la projection résultat.
Ce que je suis en train de faire est l'application d'un $gt et $lt filtre mais sans beaucoup de succès.
db.workouts.aggregate(
{
$match: { user_id: ObjectId("....") }
},
{
$project: {
'20': { $cond: [ [{$gt: [ "$avg_intensity", 20]}, {$lt: [ "$avg_intensity", 25]}] , '$total_volume', 0] }
}
})
Comment puis-je appliquer les deux $gt et $lt conditions?
OriginalL'auteur Andrea Campolonghi | 2014-04-23
Vous devez vous connecter pour publier un commentaire.
De combiner des conditions logiques sous un
$dir
opérateur puis enveloppez les conditions d'une$
opérateur:OriginalL'auteur Neil Lunn
Si je suis à vos exigences droite, vous devriez mettre le filtre dans le match de la tuyauterie:
OriginalL'auteur Sebastian