Le FINDOnEAnDupdate () la méthode renvoie le document après la mise à jour, tandis que le updateOne () La méthode de MongoDB met également à jour un document mais il ne renvoie aucun document.
Dans cet article, vous apprendrez à comprendre et à appliquer la findOnDupdate() Méthode de MongoDB pour correspondre et mettre à jour un seul document.
Comment FinDonEndupdate () fonctionne à MongoDB
Le mécanisme de travail de cette méthode est basé sur la syntaxe ci-dessous:
db.nom de collection.FindonEndupDate (filter, update, Options)Dans la syntaxe ci-dessus:
nom de collection fait référence à la collecte d'une base de données Mongo dans laquelle réside le document.
filtre est une condition pour correspondre au document.
mise à jour Contient le ou les champs et les valeurs associées à mettre à jour
Options sont les paramètres pour affiner le traitement de mise à jour. Par exemple, le «maxitims«L'option est utilisée pour limiter le temps d'exécution d'une requête. Si le délai spécifié dépasse, la requête ne sera pas exécutée.
Comment appliquer la méthode findOnOnDupDate () dans MongoDB
Dans cette section, un guide détaillé est fourni à l'aide de plusieurs exemples pour utiliser FindOnAnDupDate () Méthode:
Exemple 1: mise à jour d'un seul document
Pour cet exemple, nous utiliserons un «ordinateurs portables»La collection et le contenu suivant y résident:
> db.ordinateurs portables.trouver().joli()Nous voulons ajouter un "Statut" champ avec la valeur «disponible«Aux documents où le«Unités"La valeur est supérieure ou égale à"50". La commande mentionnée ci-dessous effectuera la mise à jour mentionnée ci-dessus à l'aide du FINDOnEAnDupdate () méthode.
> db.ordinateurs portables.FindonEndupDate ("Unités": $ gte: 50, $ set: "Status": "Disponible")Les observations suivantes sont tirées de la sortie ci-dessus:
Le FINDOnEAnDupdate () La méthode a renvoyé le document d'origine (avant la mise à jour).
Comme il y a deux documents qui ont «Unités«Valeur supérieure ou égale à«50", mais le FINDOnEAnDupdate () La méthode considère la première qui correspond à la condition.
Vous pouvez vérifier la mise à jour en utilisant la commande mentionnée ci-dessous: et il est remarqué qu'un seul document est ajouté avec le champ "Statut".
> db.ordinateurs portables.trouver().joli()Exemple 2: Renvoi du document mis à jour
Par défaut, la méthode FindOneAnDupDate () renvoie le document d'origine. Vous pouvez obtenir le document mis à jour en retour en définissant le «retournewDocument"Valeur de l'option à"vrai".
La commande écrite ci-dessous ajoutera un nouveau champ "chat"Et sa valeur est définie sur"Jeu". La mise à jour est effectuée dans le document où le «Prix»La valeur est égale 1750. De plus, le «retournewDocument" La valeur est "vrai". Il doit donc retourner le document mis à jour.
> db.ordinateurs portables.FindonEndupDate ("Price": 1750, $ set: "Cat": "Gaming", returnNewDocument: true)La sortie montre que le document renvoyé par la commande ci-dessus est une version mise à jour.
Exemple 3: Utilisation de la méthode FindonEndupDate () avec des options
Plusieurs options sont prises en charge par cette méthode, car nous avons appliqué le «retournewDocument"Option dans"Exemple 2". Dans cette section, plusieurs autres options prises en charge par cette méthode sont expliquées.
Upsert: La valeur du «ascension"L'option est fausse par défaut. Et s'il est défini sur «vrai", le FINDOnEAnDupdate () La méthode créera un nouveau document si la condition ne correspond à aucun document.
Par exemple, la commande mentionnée ci-dessous recherchera les documents où le «Faire"La valeur correspond"Extraterrestre" dans le ordinateurs portables collection. Puisque aucun document n'a de valeur de champ "Extraterrestre", Par conséquent, un nouveau document sera créé car nous avons défini le «ascension«Valeur comme«vrai".
Note: Nous avons également utilisé le «retournewDocument”Option pour obtenir le document mis à jour en retour.
> db.ordinateurs portables.FindonEndupdate ("Make": "Alien", $ set: "Price": 1500, "Cat": "Gaming", upsert: true, returnnewDocument: true)Maxtimems: Cette option est utilisée pour limiter le temps (en millisecondes) pour la commande de mise à jour. Si la limite de temps spécifiée dépasse, la requête renvoie une erreur. Par exemple, nous avons défini le «maxitims"Option pour évaluer"2"Dans la commande mentionnée ci-dessous:
> db.ordinateurs portables.FindonEndupdate ("Make": "Alien", $ set: "unités": 15, "Price": 1850, returnNewDocument: true, maxtimems: 2)Note: La valeur du «maxitims«L'option doit être numérique (pas flotter ou tout autre type de données).
Conclusion
Le processus de mise à jour a un rôle clé dans tout système de gestion de la base de données car les données doivent être mises à jour avec le temps dans n'importe quelle organisation. Les extensions de méthode de plusieurs mises à jour sont utilisées par MongoDB comme FINDOnEAnDupdate (). Dans cet article informatif, nous avons fourni une brève application de cette méthode dans MongoDB. La méthode ciblée correspond au premier document en fonction de la condition, puis met à jour le ou les champs spécifiques de ce document.