Comment utiliser la requête Upsert à MongoDB

Comment utiliser la requête Upsert à MongoDB
Les bases de données sont largement classées en types SQL et NOSQL. MongoDB relève de cette dernière catégorie et prend en charge une solide langue de requête pour traiter les données. La requête Upsert dans MongoDB est utilisée pour aider la mise à jour et remplacer les méthodes. Il crée un nouveau document si la condition n'est pas respectée par les méthodes de mise à jour / remplacement. Certaines méthodes étendues de mise à jour sont également prises en charge par ascension requête, et ils incluent findAndModify, updateOne (), rehatoile ().

Cet article expliquera l'utilisation de la requête UPSERT des niveaux de base aux niveaux avancés. L'utilisation avancée de cette requête sera expliquée en appliquant Upsert avec plusieurs méthodes.

Comment fonctionne la requête Upsert à MongoDB

L'option Upsert a la syntaxe suivante:

Upsert:

La valeur booléenne peut être vrai faux. Par défaut, l'upsert a un FAUX valeur.

Comment utiliser la requête Upsert avec la méthode de mise à jour

Cette section explique la requête Upsert avec plusieurs commandes. Exerçons d'abord la méthode de mise à jour. Comment fonctionne la mise à jour dans une condition où le document que nous voulons faire correspondre n'existe pas?

La collection du personnel contient les documents suivants:

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

La commande mentionnée ci-dessous essaie de mettre à jour un document (_id: 3) qui n'existe pas, donc la requête de mise à jour ne sera ni ascension ni mise à jour n'importe quel document.

> db.personnel.Update (_ id: 3, name: "alen")

Maintenant, ajoutons un ascension option et définir sa valeur sur vrai dans le même état que nous avons expliqué ci-dessus. La commande mentionnée ci-dessous essaie de mettre à jour un document qui correspond au nom: «Sam”Field, mais le document n'existe pas.

Il est observé à partir de la sortie que le nombre de valeurs de document renversées est "1".

> db.personnel.Mise à jour (nom: "Sam", Desig: "Team-lead", upsert: true)

Pour vérifier cela, vérifions les documents à l'intérieur "personnel”Collection en utilisant la commande suivante:

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

Note: La méthode jolie () est utilisée pour obtenir la sortie dans un format plus clair.

Comment utiliser la requête Upsert avec la méthode UpdateOne

L'option Upsert peut être utilisée avec la méthode UpdateOne pour insérer un document si la correspondance de condition est échouée. Le "personnel»La collection contient trois documents, et nous voulons ajouter un document avec (_id: 3) qui n'existe pas. Faire ascension fonctionnel, vous devez définir sa valeur sur true, le scénario ci-dessus est exécuté en émettant la commande mentionnée ci-dessous:

> db.personnel.updateOne (_ id: 3, $ set: name: "sam", desig: "team-lead", upsert: true)

Dans la commande ci-dessus, nous avons utilisé «_id: 3"Pour faire correspondre un document par conséquent, le document renversé a été attribué un identifiant unique"_id: 3". De plus, vous pouvez vérifier le ascension action en obtenant le contenu de personnel collection:

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

Comment utiliser la requête Upsert par la méthode RemplaceOne

La méthode Remplaceone remplace la ou les valeurs de champ si la correspondance réussit. Et si la correspondance n'est pas réussie, Upsert peut être utilisé pour ajouter un nouveau document.

Dans la commande ci-dessous, remphalon Commande essaie de remplacer le document qui a un champ "Nom: Tom«(Ce qui n'existe pas en fait). La valeur usée est «vrai", Donc il ajoutera un nouveau document avec un ID unique par défaut qui contient un champ"Nom: Jobes" et "Desig: auteur«:

> db.personnel.RemplaceOne (name: "Tom", name: "Jobes", Desig: "Author", upsert: true)

Comment utiliser upsert avec la méthode findandmodify

Le findAndMotify () modifie le document et agit presque la même chose que le mise à jour() Méthode, mais findAndModify () modifie un seul document qui correspond en premier, tandis que le mise à jour() La méthode met à jour tous les documents correspondants.

La commande écrite ci-dessous montre l'utilisation du uspert avec la méthode findandmodify (). Comme le findAndMotify () ne correspond pas à un document, donc un nouveau document est disponible:

Le "mettre en doute"Mot-clé utilisé dans la commande essaie de correspondre"_id: 5»Et essaie de mettre à niveau le«nobs"Champ par valeur"15«:

> db.personnel.findAndModify (query: _id: 5, mise à jour: $ inc: num: 15, upsert: true)

La requête revient "nul"Parce que nous n'avons pas utilisé le tri dans la commande et qu'aucune correspondance de document. Cependant, si vous regardez le contenu du «personnel"Collection, vous trouverez le document nouvellement renversé avec une valeur d'identification"_id: 5«:

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

Conclusion

MongoDB a une longue liste de commandes et de requêtes pour mettre à jour ou remplacer les données dans les documents d'une collection. Parallèlement à ces commandes, la requête Upsert aide ces commandes de mise à jour / remplacer pour insérer un nouveau document si les commandes de mise à jour / remplacement ne correspondent à aucun document. Dans ce guide de la série MongoDB, nous avons fourni l'utilisation d'une requête Upsert avec plusieurs commandes à MongoDB. Après avoir analysé le mécanisme de travail UPSERT, il est conclu que Upsert agit comme une méthode d'insertion pour plusieurs méthodes de mise à jour / supprimer dans MongoDB.