MONGODB Remplaceone et remplacer

MONGODB Remplaceone et remplacer
Les fonctions remphalon () et remplaceAll () seront utilisées pour remplacer une valeur dans la base de données MongoDB. Il y a juste une différence mineure dans le fonctionnement des deux opérateurs. La méthode Remplaceone est utilisée pour remplacer un document solitaire qui correspond à un filtre déclaré. La méthode prend trois arguments: le filtre, le document de remplacement et un objet d'options facultatifs. Tandis que la méthode de remplacement est utilisée pour remplacer tous les documents d'une collection par un nouvel ensemble de documents. Cette méthode est généralement utilisée pour les mises à jour en vrac et peut convenir lors du transfert de données d'une collection à une autre. La méthode prend deux arguments: les documents de remplacement et un objet d'options facultatifs. Dans ce guide aujourd'hui, nous discuterons de l'utilisation des deux opérateurs à l'aide d'exemples.

Créer une collection

À partir de la coquille MongoDB, nous créons une nouvelle collection «mannequin» dans notre MongoDB à l'aide de la commande ci-dessous: la méthode createCollection ().

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

Insérer des documents

Il est temps d'ajouter des documents à la collection MongoDB. Pour cela, la commande MongoDB ci-dessous a été exécutée qui insére plusieurs documents dans la collection «mannequin»: insertMany (). Les documents contiennent des informations sur les villes, les pays et un champ de décompte (avec des valeurs pour certains documents). Chaque document du tableau a un ensemble de paires de valeurs clés. La commande renvoie une réponse selon laquelle l'insertion est reconnue.

Tester> dB.Factice.INSERTMANY ([City: "Texas", pays: "Angleterre", compte: 5,
… City: "Los Angeles", Country: "America", Count: 2, City: "Italie", pays: "France",
… City: "Istanbul", pays: "Turquie", comte: 8, City: "Delhi", pays: "Inde", comte: 7])

Reconnu: vrai,
insertEDIDS:
'0': ObjectId ("63C7B3588083BBF655D69684"),
'1': ObjectId ("63C7B3588083BBF655D69685"),
'2': ObjectId ("63C7B3588083BBF655D69686"),
'3': ObjectId ("63C7B3588083BBF655D69687"),
'4': ObjectId ("63C7B3588083BBF655D69688")

Afficher les documents

Maintenant, pour récupérer et afficher tous les documents de la collection «factice», nous allons lancer la méthode find () dans l'instruction ci-dessous. Les documents retournés sont représentés dans un format de tableau, avec chaque enregistrement dans le tableau comme un objet. Les champs de chaque document incluent «_id», «ville», «country» et «compter» i.e. Le champ "_id" est un identifiant unique attribué par MongoDB.

Tester> dB.Factice.trouver()
[
_id: ObjectId ("63C7B3588083BBF655D69684"), ville: 'Texas', pays: 'Angleterre', compte: 5,
_id: ObjectId ("63C7B3588083BBF655D69685"), Ville: 'Los Angeles', pays: 'America', Count: 2,
_id: ObjectId ("63C7B3588083BBF655D69686"), Ville: 'Italie', pays: 'France',
_id: ObjectId ("63C7B3588083BBF655D69687"), Ville: 'Istanbul', pays: 'Turquie', Count: 8,
_id: ObjectId ("63C7B3588083BBF655D69688"), Ville: 'Delhi', pays: 'Inde', Count: 7
]]

Exemple 01: Méthode remplacée

La méthode Remplaceone est utilisée pour remplacer un seul document qui correspond à un filtre spécifié dans MongoDB. Par conséquent, nous l'utiliserons dans l'instruction ci-dessous pour remplacer un document au sein de la collection «factice». Le premier argument transmis à la méthode Remplaceone est le filtre. Dans ce cas, le filtre est «City»: «Delhi», ce qui signifie que le document avec le champ «City» réglé sur «Delhi» sera remplacé. Le deuxième argument transmis à la méthode Remplaceone est le document de remplacement, qui est le nouveau document qui remplacera l'ancien: «Country»: «India-Pacific». Ainsi, le document avec le terrain «ville» réglé sur «Delhi» aura désormais le terrain «country» réglé sur «Inde-Pacific» au lieu de sa valeur précédente.

Le code est enveloppé dans un bloc de coups d'essai, qui est utilisé pour gérer toutes les erreurs qui peuvent se produire lors de l'exécution de la méthode RemplaceOne. Si une erreur se produit, il sera attrapé par le bloc de capture et imprimé sur la console à l'aide de la fonction print (). La sortie montre qu'un document a été apparié, modifié et le nombre de personnes renversées est nul.

Tester> essayez
… DB.Factice.RemplaceOne ("City": "Delhi", "Country": "India-Pacific");
… Catch (e) print (e);

Reconnu: Vrai, C7B3588083BBF655D69684 "),
InsertEDID: NULL,
MattedCount: 1 et ',
ModifiedCount: 1,
UpsertedCount: 0

Après avoir affiché tous les documents de la collection «factice» sur le shell en utilisant la fonction «Find», nous devons savoir que le 5e Le dossier a été mis à jour avec «Country:« India-Pacific »».

Tester> dB.Factice.trouver()
[
_id: ObjectId ("63C7B3588083BBF655D69684"), ville: 'Texas', pays: 'Angleterre', compte: 5,
_id: ObjectId ("63C7B3588083BBF655D69685"), Ville: 'Los Angeles', pays: 'America', Count: 2,
_id: ObjectId ("63C7B3588083BBF655D69686"), Ville: 'Italie', pays: 'France',
_id: ObjectId ("63C7B3588083BBF655D69687"), Ville: 'Istanbul', pays: 'Turquie', Count: 8,
_id: ObjectId ("63C7B3588083BBF655D69688"), pays: 'India-Pacific'
]]

Exemple # 02: Méthode Remplaceone par l'option UPSERT

Dans cet exemple de code, nous utiliserons l'option Upsert dans la méthode remphalon () qui ajoute un nouvel enregistrement si celle spécifiée n'est pas trouvée. Par conséquent, le code que nous utilisons ci-dessous comprend une option pour augmenter le document. Le premier argument remis à la méthode Remplaceone est le filtre «City»: «Mali»: Le document avec le champ «City» réglé sur «Mali» sera remplacé. Le deuxième argument est le document de remplacement City: «Mali», pays: «Maldives», comte: 5. Le terrain «ville» qui se déroule sur «Mali» aura désormais le terrain «country» sur «Maldives» et le «compte» réglé à 5.

Le troisième argument transmis à la méthode Remplaceone est l'option upsert: true: pour insérer un tout nouveau document s'il n'est pas trouvé. Le code est à nouveau enveloppé dans un bloc de capture d'essai pour imprimer () l'erreur prise dans la commande. Le résultat de la réponse montre qu'aucun document n'a été apparié et modifié, mais un document a été mis à l'émission: un nouveau document est inséré car le document spécifié dans le filtre n'existait pas.

Test> essayez db.Factice.RemplaceOne ("City": "Mali",
… City: "Mali", pays: "Maldives", comte: 5, upsert: true);
… Catch (e) print (e);

Reconnu: vrai,
insertEDID: ObjectId ("63C7BFAAF8C41DF4B034B120"),
MatchCount: 0,
ModifiedCount: 0,
UpsertedCount: 1

Pour confirmer l'insertion d'un enregistrement supplémentaire, nous avons affiché l'intégralité de la collection «factice» et avons le résultat indiqué ci-dessous. L'option Upsert a inséré un nouveau document à la fin.

Tester> dB.Factice.trouver()
[
_id: ObjectId ("63C7B3588083BBF655D69684"), ville: 'Texas', pays: 'Angleterre', compte: 5,
_id: ObjectId ("63C7B3588083BBF655D69685"), Ville: 'Los Angeles', pays: 'America', Count: 2,
_id: ObjectId ("63C7B3588083BBF655D69686"), Ville: 'Italie', pays: 'France',
_id: ObjectId ("63C7B3588083BBF655D69687"), Ville: 'Istanbul', pays: 'Turquie', Count: 8,
_id: ObjectId ("63C7B3588083BBF655D69688"), Ville: 'Delhi', pays: 'Inde', Count: 7
_id: ObjectId ("63C7BFAAF8C41DF4B034B120"), Ville: 'Mali', Pays: 'Maldives', Count: 5
]]

Exemple # 03: Méthode de remplacement

Voici l'illustration sur la façon dont l'opérateur RempaceALL () fonctionne à MongoDB. L'entrée de l'opérateur $ RempaceALL est le champ «pays» des documents de la collection. La valeur «trouver» est «i» et la valeur de remplacement est «e». Cela signifie que toutes les occurrences de la lettre «I» dans le champ «pays» seront remplacées par la lettre «E». Le résultat est un nouveau champ «country» avec la chaîne modifiée. Par exemple, la valeur d'origine «India-Pacific» serait remplacée par «indea-Pacefec», la valeur «Amérique» est maintenant «Amereca» et «Maldives» est désormais «Maldeves» comme démontré dans la sortie également.

Tester> dB.Factice.agrégat ([$ project: country: $ remplaceall: entrée: "$ country", finir: "i", remplacement: "e"]))
[
_id: ObjectId ("63C7B3588083BBF655D69684"), pays: 'Angleterre',
_id: ObjectId ("63C7B3588083BBF655D69685"), pays: 'Amereca',
_id: ObjectId ("63C7B3588083BBF655D69686"), pays: 'France',
_id: ObjectId ("63C7B3588083BBF655D69687"), pays: 'Turquie',
_id: ObjectId ("63C7B3588083BBF655D69688"), pays: 'indea-Pacefec',
_id: ObjectId ("63C7BFAAF8C41DF4B034B120"), pays: 'Maldeves'
]]

Laissez-nous à nouveau à mettre à jour l'illustration ci-dessus. L'argument «Find» a été passé avec une valeur «A» et la valeur de remplacement est «*****». Cela signifie que toutes les occurrences de la lettre «A» dans le champ «City» seront remplacées par la chaîne «******». Le résultat est un nouveau champ «ville» avec la chaîne modifiée. Par exemple, le «Texas» d'origine serait remplacé par «Tex ***** S», et l'original «Italie» serait remplacé par «it ***** ly» et ainsi de suite.

Tester> dB.Factice.agrégat ([$ project: City: $ remplaceall: entrée: "$ city", trouver: "a", remplacement: "******"]))
[
_id: ObjectId ("63C7B3588083BBF655D69684"), Ville: 'Tex ****** S',
_id: ObjectId ("63C7B3588083BBF655D69685"), ville: 'Los Angeles',
_id: ObjectId ("63C7B3588083BBF655D69686"), ville: 'It ****** ly',
_id: ObjectId ("63C7B3588083BBF655D69687"), ville: 'ist ****** nbul',
_id: ObjectId ("63C7B3588083BBF655D69688"), ville: null,
_id: ObjectId ("63c7bfaaf8c41df4b034b120"), ville: 'M ****** li'
]]

Conclusion

Nous avons défini les fonctions RemplaceOne () et RempacEALL () avec la différence entre elles. Nous avons expliqué 3 des exemples distincts de l'article I.e. Méthode remphalon () Pour mettre à jour un seul champ, l'option Upsert à utiliser dans la méthode RemplaceOne pour ajouter un nouvel enregistrement s'il n'est pas trouvé un champ correspondant et la méthode RempaceALL () pour remplacer une chaîne dans tous les documents. La méthode remphalon () est très différente de la méthode de remplacement en ce qui concerne l'effet qu'il ajoute à la collection de base de données.