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

MongoDB $ multiplier

Dans MongoDB, le $multiply l'opérateur de pipeline d'agrégation multiplie les nombres et renvoie le résultat.

Pour utiliser le $multiply opérateur, transmettez les nombres à l'opérateur dans un tableau.

Les arguments peuvent être n'importe quelle expression valide, tant qu'ils se résolvent en nombres.

Exemple

Supposons que nous ayons une collection appelée data avec le document suivant :

{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }

Nous pouvons utiliser le $multiply opérateur dans un pipeline d'agrégation pour multiplier deux ou plusieurs de ces nombres ensemble.

Multiplier 2 nombres

Voici un exemple de multiplication de deux nombres ensemble.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Résultat :

{ "a" : 1000, "b" : 2, "result" : 2000 }

Multiplier 3 nombres

Le voici à nouveau, sauf que cette fois nous multiplions les trois nombres ensemble.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Résultat :

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }

Valeurs négatives

Les nombres peuvent être positifs ou négatifs.

Supposons que nous ajoutions le document suivant à notre collection :

{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }

Maintenant, réexécutons les exemples précédents et voyons ce qui se passe :

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Résultat :

{ "a" : 1000, "b" : 2, "result" : 2000 }
{ "a" : 1000, "b" : -2, "result" : -2000 }

Et le voici avec trois chiffres :

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Résultat :

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
{ "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }

Lorsque vous multipliez un nombre négatif par un nombre positif, le produit est toujours négatif. Mais lorsque vous multipliez deux nombres négatifs ou deux nombres positifs, le produit est toujours positif.

Ajoutez votre propre numéro

Vous n'êtes pas nécessairement limité aux seuls numéros dans le ou les documents. Vous pouvez utiliser vos propres nombres si vous devez multiplier tous les champs par un montant fixe.

Exemple :

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } } 
         }
   ]
)

Résultat :

{ "result" : 15000 }
{ "result" : 15000 }