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

MongoDB $ diviser

Dans MongoDB, le $divide l'opérateur de pipeline d'agrégation divise un nombre par un autre et renvoie le résultat.

Pour utiliser $divide , passez les nombres dans un tableau. Le $divide l'opérateur divisera le premier nombre par le deuxième nombre. En d'autres termes, le premier nombre est le dividende et le second est le diviseur.

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 }

Nous pouvons utiliser le $divide opérateur dans un pipeline d'agrégation pour diviser l'un de ces nombres par l'autre.

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

Résultat :

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

Si nous voulons diviser b champ par le a champ, nous aurions besoin de les échanger.

Exemple :

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

Résultat :

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

Nombres négatifs

Supposons que nous ajoutions le document suivant à notre collection :

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

Cela inclut un nombre négatif. Mais ce n'est pas un problème, car un nombre négatif est toujours un nombre, et nous pouvons certainement diviser n'importe quel nombre par un nombre négatif.

Exemple :

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

Résultat :

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

Ici, il est inversé, de sorte que nous divisons un nombre négatif par un nombre positif :

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

Résultat :

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

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 diviser un champ par un montant fixe.

Exemple :

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

Résultat :

{ "result" : 5000 }
{ "result" : 5000 }