MongoDB $ IFNULL OPÉRATEUR

MongoDB $ IFNULL OPÉRATEUR

Lors de l'utilisation des opérateurs, nous pouvons non seulement faire des comparaisons entre les opérandes, mais nous pouvons également rechercher les valeurs manquantes, mettre à jour les enregistrements et bien d'autres. L'opérateur Ifnull de MongoDB, un de ces opérateurs, a sa place spéciale car il vérifie si le champ spécifique contient une valeur nulle ou non. Si le champ particulier a une valeur nulle, nous pouvons effectuer en conséquence: remplacez la valeur par une nouvelle valeur ou le rendre vide. Dans ce tutoriel, vous allez apprendre l'utilisation de l'opérateur Ifnull de MongoDB à l'aide de Shell MongoDB. Par conséquent, vous devriez faire installer MongoDB avec ses dépendances.

Créer une base de données et une collection

Passons à la mise en œuvre de certaines requêtes dans la coquille MongoDB pour afficher l'utilisation de l'opérateur «ifnull» de MongoDB. Avant cela, nous examinons la disponibilité des bases de données actuelles. Actuellement, nous avons 3 bases de données intégrées disponibles dans notre MongoDB conformément à l'instruction «Show DBS». Nous devons créer la base de données factice que nous utiliserons dans nos prochains exemples. Pour cela, nous devons d'abord créer une collection de bases de données.

Test> Afficher DBS
Admin 40.00 Kib
config 60.00 Kib
Local 72.00 Kib

En vérifiant les collections totales, nous avons dans notre base de données, nous avons constaté qu'il n'y a pas de collection pour l'instant et nous devons en créer un qui est l'instruction «Show Collections».

Test> Afficher les collections

Pour créer une nouvelle collection, vous devriez exécuter la méthode «CreateCollection» de MongoDB dans son shell. Il devrait prendre le nom d'une collection nouvellement créée dans les paramètres, «données». Le résultat de sortie comme ok: 1 montre que votre collection «données» est générée avec succès.

Tester> dB.CreateCollection ("Data")
ok: 1

Lorsque vous recherchez toutes les collections maintenant, vous verrez une collection nouvellement faite là-bas.

Test> Afficher les collections
Données

Après avoir généré une nouvelle collection dans la base de données MongoDB, lorsque nous avons recherché la base de données, la base de données «Test» que nous avons utilisée sans même créer est affichée dans la liste.

Test> Afficher DBS
Admin 40.00 Kib
config 108.00 Kib
Local 72.00 Kib
Test 144.00 Kib

Insérer des enregistrements à la collection

Pour l'instant, vous devez être sûr que la collection «données» est vide car nous n'y avons pas ajouté d'enregistrements. Par conséquent, une collection vide n'a aucun sens et nous devons y insérer des documents. Comme nous travaillons pour l'opérateur «$ ifnull», nous devons également ajouter les champs avec des valeurs nulles. Par conséquent, à commencer par l'insertion de nouveaux enregistrements documentés dans la collection «Data», nous avons essayé la fonction insertMany () de MongoDB pour insérer plus d'un enregistrement à la fois. L'insertion d'un total de 6 dossiers a eu lieu en une seule étape.

Les enregistrements doivent être dans un format de tableau ou des supports [] au début et à la fin des enregistrements. Chaque enregistrement doit être séparé par une virgule «» et des supports bouclés «». Presque tous les enregistrements ont 2 champs au moins: «nom» sur le terrain et «âge». Alors que tous les champs «nom» contiennent une valeur de chaîne, il y a des enregistrements où «l'âge» ne contient aucun enregistrement, nul ou valeur non définie. Après l'exécution réussie de cette requête d'insertion pour la collection «Data», vous obtiendrez la reconnaissance de l'écran Shell MongoDB affichant les ID générés automatiquement pour chaque enregistrement.

Tester> dB.Données.INSERTMANY ([nom: "Peter", âge: 24, nom: "Ana", âge: null, nom: "Bryan", âge: "", nom: "Nina", âge: 33 , Nom: "John", nom: "Michael", âge: undefined])

Reconnu: vrai,
insertEDIDS:
'0': ObjectId ("63BC3F53A2E5D7C94C4DE66B"),
'1': ObjectId ("63BC3F53A2E5D7C94C4DE66C"),
'2': ObjectId ("63BC3F53A2E5D7C94C4DE66D"),
'3': ObjectId ("63BC3F53A2E5D7C94C4DE66E"),
'4': ObjectId ("63BC3F53A2E5D7C94C4DE66F")
'5': ObjectId ("63BCBF7552359FABFC4A770E")

Après avoir inséré un total de 6 enregistrements avec succès dans la collecte «Data» de la base de données «Tester» MongoDB, vous devez également consulter tous ces enregistrements. Pour cela, vous devez afficher chacun des enregistrements de collecte «Data» au format JSON à l'aide de la fonction foreach (). Pour cela, vous devriez trouver tous les enregistrements via la fonction «Find», puis appliquer la fonction foreach () comme affiché dans la sortie ci-dessous. L'argument «printjson» est un incontournable ici. La sortie pour afficher les 6 enregistrements de la collecte «Data» au format JSON est jointe ci-dessous.

Tester> dB.Données.trouver().foreach (printjson)
_id: ObjectId ("63BC3F53A2E5D7C94C4DE66B"), Nom: 'Peter', Âge: 24
_id: ObjectId ("63BC3F53A2E5D7C94C4DE66C"), nom: 'ana', Âge: null
_id: ObjectId ("63BC3F53A2E5D7C94C4DE66D"), nom: 'Bryan', âge: "
_id: ObjectId ("63BC3F53A2E5D7C94C4DE66E"), nom: 'Nina', âge: 33
_id: ObjectId ("63BC3F53A2E5D7C94C4DE66F"), nom: 'John'
_id: ObjectId ("63BCBF7552359FABFC4A770E"), Nom: 'Michael', Âge: null

Appliquez l'opérateur «Ifnull» sur le champ «Age» de la collection «Data» car il contient des valeurs non définies et nulles dans les documents. La fonction agrégate () d'un mongodb doit être utilisée pour utiliser l'opérateur «ifnull» sur le champ «Age». Par conséquent, nous avons commencé la requête avec le nom d'une collection. Il est suivi de la fonction «agrégat» contenant l'opérateur de projet pour projeter dans le champ particulier sur lequel l'opérateur «Ifnull» va être appliqué. Le champ «Nom» est défini sur 1 afin qu'il puisse être affiché. L'opérateur «Ifnull» contient deux arguments comme [«», «»] appliqué au champ «Age». La sortie de cette requête montre l'âge: »qui a remplacé les valeurs d'âge par rien. En effet.

Tester> dB.Données.agrégat ([$ project: name: 1, Âge: $ ifnull: ["", ""]])
[
_id: ObjectId ("63BCB7A552359FABFC4A7701"), nom: 'Peter', Âge: ",
_id: ObjectId ("63BCB7A552359FABFC4A7702"), nom: 'ana', âge: ",
_id: ObjectId ("63BCB7C352359FABFC4A7703"), nom: 'Bryan', âge: ",
_id: ObjectId ("63BCB7C352359FABFC4A7704"), nom: 'Nina', âge: ",
_id: ObjectId ("63BCB7D052359FABFC4A7705"), nom: 'John', Âge: ",
_id: ObjectId ("63BCBF7552359FABFC4A770E"), nom: 'Michael', Âge: "
]]

Lorsque vous utilisez une expression de chaîne dans le premier argument de l'opérateur «ifnull», il va remplacer toutes les valeurs d'un champ «Age» par cette chaîne. Dans la sortie indiquée ci-dessous, nous avons utilisé la chaîne «non définie» et elle a pris la place des valeurs d'origine dans le champ d'âge de tous les enregistrements.

Tester> dB.Données.agrégat ([$ project: name: 1, Âge: $ ifnull: ["indéfini", ""]])
[
_id: ObjectId ("63BCB7A552359FABFC4A7701"), Nom: 'Peter', Âge: 'Undefined',
_id: ObjectId ("63BCB7A552359FABFC4A7702"), nom: 'ana', âge: 'Undefined',
_id: ObjectId ("63BCB7C352359FABFC4A7703"), nom: 'Bryan', âge: 'Undefined',
_id: ObjectId ("63BCB7C352359FABFC4A7704"), Nom: 'Nina', Âge: 'Undefined',
_id: ObjectId ("63BCB7D052359FABFC4A7705"), Nom: 'John', Âge: 'Undefined',
_id: ObjectId ("63BCBF7552359FABFC4A770E"), Nom: 'Michael', Âge: 'Undefined'
]]

Pour éviter une telle chose, nous devrons utiliser le champ «Age» comme premier argument à l'opérateur Ifnull avec le signe «$». Ensuite, que le deuxième argument soit vide je.e., Deuxième argument comme sa valeur. Lors de l'exécution de cette instruction globale, nous afficherons la sortie attachée ci-dessous. Maintenant, vous pouvez voir que le champ d'âge a affiché ses valeurs d'origine où il n'y a pas de valeur «nul». De plus, lorsque les valeurs sont nulles ou non définies, le champ d'âge est remplacé par vide ».

Tester> dB.Données.agrégat ([$ project: name: 1, Âge: $ ifnull: ["$ age", ""]])
[
_id: ObjectId ("63BCB7A552359FABFC4A7701"), Nom: 'Peter', Âge: 24,
_id: ObjectId ("63BCB7A552359FABFC4A7702"), nom: 'ana', âge: ",
_id: ObjectId ("63BCB7C352359FABFC4A7703"), nom: 'Bryan', âge: ",
_id: ObjectId ("63BCB7C352359FABFC4A7704"), nom: 'Nina', âge: 33,
_id: ObjectId ("63BCB7D052359FABFC4A7705"), nom: 'John', Âge: ",
_id: ObjectId ("63BCBF7552359FABFC4A770E"), nom: 'Michael', Âge: "
]]

Passons un coup d'œil à différentes valeurs de sortie pour les valeurs nulles du champ «Age» en utilisant l'opérateur IFNULL dans l'instruction globale. Cette fois, nous utilisons la chaîne «valeur nul» comme deuxième argument à l'opérateur IFNULL pour remplacer les valeurs nuls sur le terrain «Age». Le résultat ci-dessous a affiché le remplacement des valeurs nulles par la chaîne «valeur nul».

Tester> dB.Données.agrégat ([$ project: name: 1, Âge: $ ifnull: ["$ age", "null Value"]])
[
_id: ObjectId ("63BCB7A552359FABFC4A7701"), Nom: 'Peter', Âge: 24,
_id: ObjectId ("63BCB7A552359FABFC4A7702"), nom: 'ana', Âge: 'Null Value',
_id: ObjectId ("63BCB7C352359FABFC4A7703"), nom: 'Bryan', âge: ",
_id: ObjectId ("63BCB7C352359FABFC4A7704"), nom: 'Nina', âge: 33,
_id: ObjectId ("63BCB7D052359FABFC4A7705"), Nom: 'John', Âge: 'Null Value',
_id: ObjectId ("63BCBF7552359FABFC4A770E"), Nom: 'Michael', Âge: 'Null Value'
]]

Conclusion

Cet article contient une discussion sur l'utilisation de l'opérateur Ifnull à partir de son introduction à l'illustration finale. Les illustrations montrent comment une valeur «nul» originale d'un certain champ peut être remplacée par une nouvelle valeur. Après avoir discuté de toute la procédure d'utilisation de l'opérateur Ifnull dans la fonction d'agrégat MongoDB, nous sommes arrivés au résultat que le premier argument de l'opérateur IFNULL devrait être un nom de champ avec un caractère «$» pour éviter les complications.