MongoDB $ strCasecmpMP

MongoDB $ strCasecmpMP
Tout en faisant une comparaison dans différentes langues, nous avons tendance à utiliser des opérateurs de comparaison. La comparaison pourrait être sensible à la casse ou insensible en fonction du choix d'un utilisateur. Tout comme les autres environnements de développement, MongoDB dispose de ses opérateurs de comparaison et l'un de ces opérateurs est l'opérateur «StrcasecMP». L'opérateur MongoDB StrcasecMP compare deux valeurs de chaîne d'une manière insensible au cas I.e., Ignorez le cas de chaîne et la recherche. L'opérateur StrcasecMP renvoie 0 si les deux chaînes sont égales, 1 si la première valeur est supérieure à la seconde, et -1 si la première valeur est inférieure à la deuxième valeur. L'opérateur peut être utilisé dans une requête MongoDB pour filtrer les documents en fonction des valeurs de chaîne.

Créer une collection

Commencez par la création d'une nouvelle collection de bases de données dans votre banque de base de données. La commande jointe ci-dessous consiste à créer une nouvelle collection appelée «données» dans notre base de données MongoDB «Test». La réponse de ok: 1 indique que la collection a été créée avec succès et peut être utilisée plus loin.

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

Insérer des enregistrements à la collection

Au début de la création d'une collection, il doit être vide car nous n'avons pas encore ajouté de documents. Pour effectuer l'opérateur StrcasecMP sur une collection «Data», il devrait avoir des documents. Par conséquent, nous utiliserons la fonction MongoDB InsertMany pour ajouter de nombreux enregistrements dans une collection nommée «Data» à la fois. Les documents insérés sont sous forme de paires de valeurs clés, avec des clés «titre» et «desc» et leurs valeurs respectives. Les valeurs insérées incluent «John», «John», «Idk» et «Lisa» pour la clé «Title» et «A Random Guy», «Good Boy», «Idontknow» et «Enginner» pour «pour le« Clé desc ». La commande consiste à ajouter 4 nouveaux documents. La sortie montre le «reconnu» comme une valeur booléenne, qui est définie sur true, indiquant que la requête a été reconnue et exécutée par le serveur MongoDB avec succès.

Tester> dB.Données.insertmany ([titre: "John", desc: "un gars aléatoire", title: "John", desc: "bon garçon", title: "idk", desc: "idontknow", titre : "Lisa", desc: "Enginner"])

Reconnu: vrai,
insertEDIDS:
'0': ObjectId ("63C90D6A42844A817C33167C"),
'1': ObjectId ("63C90D6A42844A817C33167D"),
'2': ObjectId ("63C90D6A42844A817C33167E"),
'3': ObjectId ("63C90D6A42844A817C33167F")

Afficher les enregistrements de collection

Après avoir inséré un total de 4 enregistrements dans la collecte «Data» de la base de données «Test», nous devons vérifier les documents au moins une fois. Par conséquent, nous devons afficher les enregistrements insérés dans la coque MongoDB pour la visualisation. La commande de visualisation des enregistrements a été jointe ci-dessous. En utilisant la méthode MongoDB Find (), nous avons récupéré tous les documents de la collection «Data». L'objet vide passé comme argument à la méthode find () signifie qu'aucune condition de filtrage n'est appliquée et que tous les documents de la collection seront retournés. La sortie de cette commande est un tableau de documents, chacun contenant les champs _id, titre et desc et leurs valeurs respectives, qui ont été ajoutées plus tôt dans la collection. La sortie confirme que les documents sont présents dans la collection et peuvent être récupérés pour un traitement ultérieur.

Tester> dB.Données.trouver()
[_id: ObjectId ("63c90d6a42844a817c33167c"), titre: 'John', desc: 'un gars aléatoire',
_id: ObjectId ("63C90D6A42844A817C33167D"), titre: 'John', desc: 'bon garçon',
_id: ObjectId ("63C90D6A42844A817C33167E"), titre: 'idk', desc: 'idontknow',
_id: ObjectId ("63C90D6A42844A817C33167F"), titre: 'Lisa', desc: 'Enginner']

Exemple # 01:

Dans notre première illustration de MongoDB, nous utiliserons l'opérateur StrcasecMP pour effectuer une comparaison entre deux valeurs de chaîne: comparaison insensible au cas. Pour cela, nous allons exécuter la requête ci-dessous dans le shell MongoDB qui utilise la fonction globale de MongoDB pour effectuer une série d'opérations sur une collection nommée «Data». La première opération est une étape de projet $, qui modifie les documents de la collection en ajoutant ou en supprimant les champs. Dans ce cas, l'étape du projet $ va afficher tous les enregistrements du «titre» de champ ainsi que l'ajout d'un nouveau champ nommé «Résultat» à chaque document, qui est le résultat de la comparaison de la valeur du champ «Title» à la chaîne «idk» à l'aide de l'opérateur $ strcascmpMP.

La comparaison est insensible à la cas, ce qui signifie que «John» et «John» seraient considérés comme égaux. Le nouveau champ «Résultat» affiche la sortie de la comparaison du champ «Title» au «IDK». 0 au troisième enregistrement montre que la chaîne «id» est égale à la chaîne «idk» dans le champ «Title» tandis que le reste est 1.

Tester> dB.Données.agrégat ([$ project: title: 1, résultat: $ strcasecmp: ["$ title", "idk"]])
[_id: ObjectId ("63C90D6A42844A817C33167C"), titre: 'John', résultat: 1,
_id: ObjectId ("63C90D6A42844A817C33167D"), titre: 'John', résultat: 1,
_id: ObjectId ("63C90D6A42844A817C33167E"), titre: 'idk', résultat: 0,
_id: ObjectId ("63C90D6A42844A817C33167F"), titre: 'Lisa', résultat: 1]

Exemple # 02:

Ayons une nouvelle illustration de la comparaison des chaînes de manière insensible au cas dans la base de données MongoDB. Cette fois, le code que nous utilisons utilise la même fonction agrégée pour effectuer une comparaison sur le champ «Title». L'étape du projet $ crée un nouveau champ avec le même nom: «Résultat» qui stocke la sortie de la comparaison. À titre de comparaison, nous utilisons le même opérateur $ StrcasecMP. L'opérateur $ strcasecmp est adopté avec deux arguments: «$ title», qui est la valeur du champ «Title» dans chaque document, et «John», qui est la chaîne utilisée comme valeur de comparaison. Dans cet exemple, le premier document a un champ «titre» de «John», qui est égal à «John», donc le résultat est 0.

Le deuxième document a un champ «titre» de «John», qui est également égal à «John» mais en majuscules. Donc, le «résultat» est également 0. Le troisième document a un champ «titre» de «idk», qui est inférieur à «John» en termes d'ordre lexicographique, donc le résultat est -1. Le quatrième document a un domaine «titre» de «Lisa», qui est supérieur à «John» en termes d'ordre lexicographique, donc le résultat est 1.

Tester> dB.Données.agrégat ([$ project: title: 1, résultat: $ strcasecmp: ["$ title", "John"]])
[_id: ObjectId ("63C90D6A42844A817C33167C"), titre: 'John', résultat: 0,
_id: ObjectId ("63C90D6A42844A817C33167D"), titre: 'John', résultat: 0,
_id: ObjectId ("63C90D6A42844A817C33167E"), titre: 'idk', résultat: -1,
_id: ObjectId ("63C90D6A42844A817C33167F"), titre: 'Lisa', résultat: 1]

Exemple # 03:

Dans notre dernière illustration, nous utiliserons le champ «DESC» de la collection «Data» à comparer avec une nouvelle chaîne. L'opérateur $ strcasecmp est en cours de réalisation de deux arguments: «$ desc», qui est la valeur du champ «DESC» dans chaque document et «idontknow», qui est la chaîne utilisée comme valeur de comparaison.

Les premiers, deuxième et 4e documents ont un champ «desc» de «un gars aléatoire», qui est inférieur ou supérieur à la chaîne «idonthnow» en termes d'ordre lexicographique. Donc, le résultat de ces enregistrements est -1. Le troisième document a un champ «DESC» de «Idontknow», qui est égal à «Idonthnow» quel que soit le cas des lettres, donc le résultat est 0.

Tester> dB.Données.agrégat ([$ project: desc: 1, résultat: $ strcascmpmp: ["$ desc", "idontknow"]]))
[_id: ObjectId ("63C90D6A42844A817C33167C"), desc: 'un gars aléatoire', Résultat: -1,
_id: ObjectId ("63C90D6A42844A817C33167D"), desc: 'bon garçon', résultat: -1,
_id: ObjectId ("63C90D6A42844A817C33167E"), desc: 'idontknow', résultat: 0,
_id: ObjectId ("63C90D6A42844A817C33167F"), desc: 'Enginner ", Résultat: -1]

Conclusion

Ce guide présente le concept et l'utilisation de l'opérateur StrcasecMP de MongoDB. Nous avons créé une nouvelle collection et effectué des commandes de fonction Aggregate () avec l'opérateur StrcasecMP pour démontrer l'utilisation de l'opérateur StrcasecMP. Les exemples utilisés dans cet article montrent comment une seule chaîne peut être comparée dans l'insensibilité aux valeurs de chaîne des champs de collecte.