Fonction MongoDB Custom $

Fonction MongoDB Custom $
MongoDB est une base de données puissante et flexible axée sur le document qui permet aux développeurs de stocker et de récupérer des données dans un format similaire à JSON. L'une des caractéristiques les plus puissantes de MongoDB est sa capacité à utiliser des fonctions $ personnalisées pour manipuler et interroger les données. Les méthodes JavaScript côté serveur personnalisées, communément appelées «fonctions stockées», sont prises en charge par MongoDB et peuvent être utilisées dans le langage de requête et les étapes des pipelines agrégées. Ces fonctions peuvent être spécifiées à l'aide de la base de données.système.Collection JS et ils peuvent être utilisés dans les requêtes ou dans le pipeline agrégé en utilisant l'opérateur de fonction $. Dans cet article, nous allons jeter un œil à quelques exemples de fonctions $ personnalisées et la sortie qu'ils produisent.

Créer une collection

Tout d'abord, nous vérifierons la collection disponible dans notre base de données. Par conséquent, le shell MongoDB a été parfaitement lancé après avoir connecté avec sa chaîne de connexion. L'instruction MongoDB «Show Collections» a été exécutée pour afficher toutes les collections que nous avons. Cette commande ne renvoie rien sur le shell car il n'y a pas de collections dans notre base de données «Test» comme ci-dessous. Par conséquent, nous devons d'abord créer une nouvelle collection, puis commencer à y travailler.

Test> Afficher les collections

Pour ajouter ou créer une nouvelle collecte de données dans la base de données MongoDB, nous devons utiliser l'instruction «DB» suivie de la méthode de la création. La méthode CreateCollection est spécifiquement conçue pour créer de nouvelles collections prenant le nom d'une collection à créer dans son argument. Dans l'instruction ci-dessous, nous avons nommé la collection comme «test». La sortie de la commande renvoie le statut de réussite: 0 pour l'échec et 1 pour le succès. La commande ci-dessous renvoie 1, ce qui signifie que la commande a été réussie et que la collection a été créée.

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

Insérer des enregistrements

Après avoir ajouté une nouvelle collection à la base de données, il est nécessaire d'y ajouter des enregistrements car la collection peut être vide au moment de la création. Par conséquent, après avoir utilisé la fonction d'insertion de MongoDB dans l'instruction «db», nous avons ajouté 5 documents à la collection «Test» à la fois. La fonction insertmany () est spécifique à l'insertion de plusieurs enregistrements à la fois. Les 5 records contiennent un total de 3 champs chacun: titre, ville et zone. Le champ «Title» est de type «String», le champ de zone est de type entier et le champ de la ville est dans le tableau de type chaîne contenant des éléments de chaîne. La sortie de cette instruction montre la reconnaissance en affichant les ID insérés de chaque document attribué séparément par la base de données MongoDB.

Tester> dB.Test.INSERTMANY ([Titre: "USA", City: ["Newyork", "Chicago", "Boston"], zone: 234567,
… Titre: "UAE", ville: ["Dubaï", "Abudhabi", "Sharjah"], zone: 786907,
… Titre: "Asia", City: ["Bangkok", "Tokyo", "Beijing"], zone: 984567,
… Titre: "Europe", ville: ["Italie", "Istanbul", "Londres"], région: 1475997,
… Titre: "Antarctica", ville: ["Villa las Estrellas", "King Edward Point", "Grytvkin"], zone: 2835997]))

Reconnu: vrai,
insertEDIDS:
'0': ObjectId ("63CFFD7D64F216739D14B251"),
'1': ObjectId ("63CFFD7D64F216739D14B252"),
'2': ObjectId ("63CFFD7D64F216739D14B253"),
'3': ObjectId ("63CFFD7D64F216739D14B254"),
'4': ObjectId ("63CFFD7D64F216739D14B255")

Enregistrements d'affichage

Après l'insertion de tous les enregistrements dans la collection «Test» de la base de données «Test» de MongoDB, nous sommes prêts à les consulter à la fois pour vérifier l'insertion. Ainsi, la fonction «trouver» de MongoDB peut être rejetée dans l'instruction «db» à cet effet. Assurez-vous d'utiliser le nom d'une collection entre le mot-clé «db» et la fonction find (). Les paramètres de la fonction «trouver» doivent contenir les supports bouclés vides sans spécifier de nom de champ. Les supports vides envisagent de récupérer tous les enregistrements de la collection avec tous les champs de données tout en spécifiant un ou plusieurs champs qui mène à un affichage d'enregistrement unique ou uniquement spécifié sur le shell. Par conséquent, la sortie de cette instruction, avec les supports bouclés vides dans la fonction Find (), a affiché les 5 enregistrements de la collection «Test» chacun avec les 3 champs: le titre, la ville et la région. De plus, chaque enregistrement peut être identifié séparément d'une autre en utilisant le champ «_ID» attribué par la base de données MongoDB.

Tester> dB.Test.trouver()
[
_id: ObjectId ("63CFFD7D64F216739D14B251"), Titre: 'USA', City: ['Newyork', 'Chicago', 'Boston'], zone: 234567,
_id: ObjectId ("63CFFD7D64F216739D14B252"), titre: 'EAU', ville: ['Dubai', 'Abudhabi', 'Sharjah'], zone: 786907,
_id: ObjectId ("63cffd7d64f216739d14b253"), titre: 'Asia', ville: ['Bangkok', 'Tokyo', 'Beijing'], zone: 984567,
_id: ObjectId ("63CFFD7D64F216739D14B254"), Titre: 'Europe', City: ['Italie', 'Istanbul', 'London'], zone: 1475997,
_id: ObjectId ("63cffd7d64f216739d14b255"), titre: 'Antarctica', ville: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], zone: 2835997
]]

Exemple # 01:

Maintenant que nous avons terminé avec l'insertion et l'affichage des enregistrements de la collection «Test», nous sommes enfin prêts à appliquer la fonction de fonction $ personnalisé pour effectuer des opérations personnalisables sur les champs. Par exemple, vous souhaitez créer un nouveau champ d'exécution dans la collection «test» qui contiendra des détails sur le pays, ses villes et la zone qu'elle contient en une seule phrase. Pour cela, nous devons utiliser les trois champs de la collection «Test» dans l'opérateur de fonction $ personnalisé utilisé dans la requête de fonction «Aggregate» illustrée ci-dessous. La fonction personnalisée prend les trois champs de la collection «Test» dans les paramètres pour créer un nouveau champ «Détail». L'instruction de retour a utilisé ces trois champs pour faire une phrase et l'afficher sur le shell. Il est nécessaire de spécifier les champs de collecte comme des «args» et la langue définie sur «JS». La sortie affiche un nouveau «détail» de champ d'exécution fournissant des informations exactes dans une phrase.

Tester> dB.Test.Aggregate ([$ addfields: Detail: $ function: body: function (title, ville, région) return '$ title a $ ville des villes avec $ région région…', args: ["$ Title", "$ City", "$ région"], lang: "JS"])
[
_id: ObjectId ("63CFFD7D64F216739D14B251"), Titre: 'USA', City: ['Newyork', 'Chicago', 'Boston'], région: 234567, Detail: 'USA a Newyork, Chicago, Boston Cities avec 234567 Area … ',
_id: ObjectId ("63cffd7d64f216739d14b252"), titre: 'UAE', ville: ['Dubai', 'Abudhabi', 'Sharjah'], zone: 786907, détail: 'UAE a Dubai, Abudhabi, Sharjah Cities avec 786907 … ',
_id: ObjectId ("63cffd7d64f216739d14b253"), titre: 'Asia', City: ['Bangkok', 'Tokyo', 'Beijing'], zone: 984567, détail: 'Asia a Bangkok, Tokyo, Beijing Cities avec 984567 … ',
_id: ObjectId ("63cffd7d64f216739d14b254"), Titre: 'Europe', ville: ['Italie', 'Istanbul', 'London'], zone: 1475997 Area: 'Europe a Italie, Istanbul, Cities London avec 1475997 Area … ',
_id: ObjectId ("63cffd7d64f216739d14b255"), titre: 'Antarctica', City: ['Villa las Estrellas', 'King Edward Point', 'Grytvkin'], région: 2835997, Detail: 'Antarctica a Villa las Estrellas, King, King Edward Point, Grytvkin Cities avec 2835997 zone… '
]]

Exemple # 02:

Jetons un coup d'œil à une autre illustration pour utiliser la fonction $ personnalisée dans MongoDB. Ici, nous utilisons l'opérateur de $ addfields suivi du nom d'un champ «AreaTripled» que nous voulons créer en utilisant l'opérateur de fonction $. La fonction personnalisée prend 1 champ «zone» comme son argument et le mot-clé «LET» nous permet de déclarer une variable «triple» prenant une valeur en tant que valeur de champ «zone» multipliée par 3. L'instruction RETOUR Retour et affichera le résultat calculé dans la variable triple. Par conséquent, la sortie de l'instruction ci-dessous affiche un total de 5 champs pour chaque document du champ de test. Le champ «AreaTripled» a été généré par l'utilisation d'une fonction personnalisée montrant la zone pour les trois villes répertoriées dans le champ «Ville» de chaque document en multipliant la valeur du champ de la zone par 3.

Tester> dB.Test.agrégat ([$ addfields: areaTripled: $ function: body: function (aire) let triple = zone * 3; return '$ triple', args: ["$ zone"], Lang: " js "])
[
_id: ObjectId ("63CFFD7D64F216739D14B251"), Titre: 'USA', City: ['Newyork', 'Chicago', 'Boston'], zone: 234567, AreaTripled: '703701',
_id: ObjectId ("63cffd7d64f216739d14b252"), titre: 'EAU', ville: ['Dubai', 'Abudhabi', 'Sharjah'], zone: 786907, areaterpripled: '2360721',
_id: ObjectId ("63cffd7d64f216739d14b253"), titre: 'Asia', City: ['Bangkok', 'Tokyo', 'Beijing'], zone: 984567, areaterpripled: '2953701',
_id: ObjectId ("63CFFD7D64F216739D14B254"), titre: 'Europe', ville: [Italie ',' Istanbul ',' Londres '], zone: 1475997, areaterpripled:' 4427991 ',
_id: ObjectId ("63CFFD7D64F216739D14B255"), Titre: 'Antarctica', City: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], zone: 2835997, AreaTripled: '850791']]

Conclusion

L'article est sur les fonctions personnalisées dans MongoDB et il montre comment un environnement MongoDB est si puissant en utilisant de telles fonctions: comme ces fonctions permettent l'insertion de données de type JSON et sa récupération. Après cela, nous avons créé la collection et inséré des enregistrements avant d'utiliser l'opérateur de fonction $ personnalisé. Après avoir réglé l'environnement, nous avons utilisé deux exemples pour illustrer l'utilisation de la fonction $ personnalisée. Les exemples couvraient l'utilisation d'un opérateur de fonction $ personnalisé pour créer un nouveau champ de données à l'aide de champs déjà insérés de la collection et effectuent également des calculs dans la mesure du possible via l'utilisation de la déclaration variable grâce à l'utilisation du mot-clé «LET».