Comment utiliser où l'opérateur à MongoDB

Comment utiliser où l'opérateur à MongoDB
MongoDB fournit un solide système de requête pris en charge par plusieurs commandes et opérateurs. Il existe une longue liste d'opérateurs (comme $ size, $ where, $ gt, $ regex et bien d'autres) qui ont étendu l'utilisation de MongoDB pour remplir la fonctionnalité de base de toute base de données. Le $ où l'opérateur appartient à la classe des opérateurs de requête d'évaluation et peut être exercé pour passer une chaîne JavaScript ou une fonction JavaScript. Le $ où l'opérateur est utilisé dans MongoDB pour obtenir uniquement les documents qui correspondent aux expressions JavaScript.

Dans ce post descriptif, nous avons fourni un aperçu de l'utilisation de $ où l'opérateur dans le contexte de MongoDB.

Comment $ où fonctionne à Mongodb

Il est remarqué que le $ où l'opérateur est utilisé rarement par rapport à d'autres opérateurs standard de MongoDB comme $ gt, $ lt, $ in et $ nin.

Comme mentionné précédemment, le $ où l'opérateur travaille uniquement pour les chaînes basées sur JS ou ses fonctions uniquement et la syntaxe pour utiliser $ où l'opérateur est mentionné ci-dessous:

$ où:

Il est observé que $ où l'opérateur ne peut pas être exécuté avec peu de fonctions standard de MongoDB comme db. Le $ où l'opérateur, ainsi que les opérations de Map-Reduce à MongoDB, prennent en charge plusieurs fonctions JavaScript, et donc ils ne peuvent pas être utilisés à l'échelle mondiale

Comment utiliser $ où à MongoDB

Les instances suivantes de MongoDB sont utilisées dans ce guide:

Base de données: La base de données utilisée ici est nommée «Linuxhint".

Nom de collection: La collection qui est exercée dans cet article est nommée «notes".

Et les documents contenus par «notes»La collection est présentée ci-dessous:

> db.personnel.trouver().joli()

Note: C1, C2, C3, C4 sont supposés comme des cours d'identification dans la sortie ci-dessus.

Exemple 1: utilisation de base de $ où l'opérateur

Avant d'entrer dans les détails, vous devez vous rappeler que les deux mots clés, soit "ce" ou "obj"Sont utilisés pour faire référence à des documents dans la fonction JS ou l'expression JS.

Se référant aux documents dans le «notes" collection:

Commande 1: La commande écrite ci-dessous recherchera des documents et affichera uniquement ceux qui ont les mêmes valeurs dans différents champs:

Comme vous pouvez vérifier que la sortie ne contient que «un"Document où les valeurs de"C1" et "C2" correspondre.

> db.notes.trouver ($ où: "ceci.C1 == ceci.C2 ").joli()

Commande 2: La même sortie (comme dans Commande 1) peut être réalisé en émettant la commande ci-dessous dans Mongo Shell. Ici le "obj«Le mot-clé est utilisé à la place«ce".

> db.notes.trouver ($ where: "obj.C1 "==" OBJ.C2 ").joli()

Commande 3: Vous pouvez également utiliser le $ où l'opérateur comme nous l'avons accompli dans la commande ci-dessous. Dans la commande suivante, une fonction () renverra les documents obtenus en appliquant «obj" et "ce”Mot-clé, la valeur de"C1" et "C3" allumettes.

> db.notes.find ($ where: function () return (this.C1 == ceci.C3)).joli()

Commande 4: L'application de la fonction JS () avec $ où l'opérateur peut également être réalisé en utilisant le «obj"Mot-clé au lieu de"ce". Pour cela, vous pouvez exécuter la commande suivante:

> db.notes.trouver ($ where: function () return obj.C1 == OBJ.C3).joli()

Exemple 2: $ où agit sans l'utiliser en commande

Si votre commande effectue uniquement l'application de l'opérateur $ où vous pouvez utiliser la commande sans spécifier le mot-clé $ dans la commande. L'exemple de commande dans une situation comme ceux-ci est indiqué ci-dessous:

> db.notes.trouve ça.C1 == ceci.C2 ").joli()

Ou la "obj«Le mot-clé peut également être utilisé à la place«ce"Dans la commande ci-dessus.

> db.notes.trouver ("obj.C1 == OBJ.C2 ").joli()

Exemple 3: Utilisation de $ où avec des opérateurs MongoDB standard

Le $ où l'opérateur peut être utilisé avec plusieurs autres opérateurs de MongoDB. Par exemple, dans la commande mentionnée ci-dessous, nous avons utilisé moins que (<) operator with $ où opérateur. La commande écrite ci-dessous recherchera les conditions des deux opérateurs, puis tout document satisfaisant soit «==» ou «||»la condition sera affichée dans la sortie.

> db.notes.trouve ça.pos1 == ceci.pos2 || ce.pos1 < this.pos2").pretty()

Il est observé en travaillant avec le $ où l'opérateur qui recherche dans la majeure partie des documents peut devenir long avec le $ où opérateur parce que MongoDB s'exécute $ où Opérateur après tout autre opérateur standard utilisé dans la requête.

Conclusion

MongoDB a fréquemment mis à jour ses versions dans le passé, et la raison était d'améliorer les performances et l'efficacité de toute commande ou méthode MongoDB, ou opérateur. Dans MongoDB, le $ où l'opérateur peut être utilisé pour faire correspondre les champs en utilisant JS Expression ou Fonction JS. Dans ce guide détaillé, nous avons fourni l'utilisation du $ où l'opérateur à MongoDB. Après des recherches et une collecte de données détaillés, nous sommes arrivés au point que les alternatives de $ où l'opérateur doit être préféré, car le $ où l'opérateur recherche l'ensemble de la collection avant de vous donner la sortie.