Maison base de données MongoDB Comment mettre à jour le _id d'un document MongoDB ?

Comment mettre à jour le _id d'un document MongoDB ?

Aug 31, 2023 pm 10:29 PM

如何更新 MongoDB 文档的 _id?

Vous ne pouvez pas le mettre à jour, mais vous pouvez enregistrer le nouvel identifiant et supprimer l'ancien. Suivez quelques étapes pour mettre à jour le _id de MongoDB. Les étapes sont les suivantes :

Étape 1 : Dans la première étape, vous devez stocker l'ObjectId dans une variable.

anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});

Étape 2 : Dans la deuxième étape, vous devez définir un nouvel identifiant.

yourDeclaredVariableName._id=yourNewObjectIdValue;

Étape 3 : Dans la troisième étape, vous devez insérer le nouvel identifiant dans le document.

db.yourCollectionName.insert(yourDeclaredVariableName);

Étape 4 : Dans la quatrième étape, vous devez supprimer l'ancien identifiant.

db.yourCollectionName.remove({_id:yourOldObjectIdValue)});

Pour comprendre les étapes ci-dessus, créons une collection avec des documents. La requête pour créer une collection à l'aide de documents est la suivante :

> db.updateIdDemo.insertOne({"StudentName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfec6fd07954a4890683")
}
> db.updateIdDemo.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebff66fd07954a4890684")
}
> db.updateIdDemo.insertOne({"StudentName":"Maxwell"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfff6fd07954a4890685")
}

Affichez tous les documents de la collection à l'aide de la méthode find(). La requête est la suivante :

> db.updateIdDemo.find().pretty();

Voici le résultat :

{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }

Voici la requête pour mettre à jour le _id d'un document MongoDB :

Step1:
> myId=db.updateIdDemo.findOne({_id:ObjectId("5c6ebfec6fd07954a4890683")});
{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }

Step 2:
> myId._id=ObjectId("5c6ebfec6fd07954a4890689");
ObjectId("5c6ebfec6fd07954a4890689")

Step 3:
> db.updateIdDemo.insert(myId);
WriteResult({ "nInserted" : 1 })

Step 4:
> db.updateIdDemo.remove({_id:ObjectId("5c6ebfec6fd07954a4890683")});
WriteResult({ "nRemoved" : 1 })

Vérifions si le _id a été mis à jour. Affichez tous les documents de la collection à l'aide de la méthode find() :

> db.updateIdDemo.find().pretty();

Voici le résultat :

{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
{ "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }

En regardant l'exemple de sortie, le _id de "StudentName":"Robert" a changé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Guide de construction d'Agnes Tachyon | Un joli Musume Derby
2 Il y a quelques semaines By Jack chen
Oguri Cap Build Guide | Un joli Musume Derby
3 Il y a quelques semaines By Jack chen
Guide de construction de Grass Wonder | Uma musume joli derby
2 Il y a quelques semaines By Jack chen
Pic comment émoter
4 Il y a quelques semaines By Jack chen

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment les pilotes MongoDB facilitent-ils l'interaction avec la base de données de divers langages de programmation? Comment les pilotes MongoDB facilitent-ils l'interaction avec la base de données de divers langages de programmation? Jun 26, 2025 am 12:05 AM

MongoDBDiversareLiBrariashaTenableAplicationStointerActwithMongodbusingTheNatinsyntaxofaspecificProgrammingNanguage, SimpliveyDatabaseOperationsByHandlinglow-levelcommunicationanddataformatConversion.

Comment les documents spécifiques peuvent-ils être interrogés à l'aide de la méthode Find () et divers opérateurs de requête dans MongoDB? Comment les documents spécifiques peuvent-ils être interrogés à l'aide de la méthode Find () et divers opérateurs de requête dans MongoDB? Jun 27, 2025 am 12:14 AM

Dans MongoDB, les documents de la collection sont récupérés à l'aide de la méthode Find (), et les conditions peuvent être filtrées via des opérateurs de requête tels que $ eq, $ gt, $ lt, etc. 1. Utilisez $ eq ou spécifiez directement les paires de valeurs clés pour correspondre exactement, tels que db.users.find ({statut: "actif"}); 2. Utilisez des opérateurs de comparaison tels que $ gt et $ lt pour définir la plage numérique, telle que db.products.find ({prix: {$ gt: 100}}); 3. Utilisez des opérateurs logiques tels que $ ou et $ et pour combiner plusieurs conditions, telles que db.users.find ({$ ou: [{statut: "inacte

Comment améliorer la sécurité de MongoDB par l'authentification, l'autorisation et le chiffrement? Comment améliorer la sécurité de MongoDB par l'authentification, l'autorisation et le chiffrement? Jul 08, 2025 am 12:03 AM

L'amélioration de la sécurité de MongoDB repose principalement sur trois aspects: l'authentification, l'autorisation et le chiffrement. 1. Activer le mécanisme d'authentification, configurer - Auth au démarrage ou définir la sécurité. Autorisation: activé et créer un utilisateur avec un mot de passe fort pour interdire l'accès anonyme. 2. Mettre en œuvre l'autorisation à grains fins, attribuer des autorisations minimales nécessaires en fonction des rôles, éviter les rôles abus des rôles fondamentaux, examiner régulièrement les autorisations et créer des rôles personnalisés. 3. Activer le cryptage, la communication de crypte à l'aide de TLS / SSL, configurez les certificats PEM et les fichiers CA et combinez le cryptage de stockage et le chiffrement au niveau de l'application pour protéger la confidentialité des données. L'environnement de production doit utiliser régulièrement des certificats de confiance et mettre à jour les politiques pour créer une ligne de sécurité complète.

Comment pouvez-vous gérer efficacement l'évolution du schéma dans un environnement MongoDB de production? Comment pouvez-vous gérer efficacement l'évolution du schéma dans un environnement MongoDB de production? Jun 27, 2025 am 12:15 AM

À l'aide de documents versionnés, suivez les versions de documents en ajoutant un champ de schéma, permettant aux applications de traiter les données en fonction des différences de version et de prendre en charge la migration progressive. 2. Concevez un motif compatible en arrière, en conservant l'ancienne structure lors de l'ajout de nouveaux champs pour éviter d'endommager le code existant. 3. Migrer progressivement les données et le traitement par lots via des scripts de fond ou des files d'attente pour réduire l'impact des performances et les risques de temps d'arrêt. 4. Surveillez et vérifiez les modifications, utilisez Jsonschema pour vérifier, définir des alertes et tester dans des environnements de pré-libération pour garantir que les modifications sont sûres et fiables. La clé de gestion de l'évolution des modèles de MongoDB consiste à des mises à jour systématiquement progressives, à maintenir la compatibilité et à surveiller en continu pour réduire la possibilité d'erreurs dans les environnements de production.

Comment pouvez-vous auditer des opérations de base de données dans MongoDB pour la sécurité et la conformité? Comment pouvez-vous auditer des opérations de base de données dans MongoDB pour la sécurité et la conformité? Jun 23, 2025 am 12:02 AM

ToauditDatabaseOperationsInmongoDB, permettent à Abuilt-INAUDITINGFUCTIONALALYBYCURINGURINGTHEAUDLOGOPTIONINTHEMONGODBCONFIGURATIONSFILEORCOMAND-lineInterface.1.EnableAuditSpecifypeciveyTheDestination, Format, andpatheAuditlog, assurantmongodbhasting, format, andpatheauditlog, assurantmongodbhasintination, AndpatheAuditlog, assurantmongodbhasintination, AndpatheAuditlog, AssuranceMongodbhastination,

Quelle est la différence entre les méthodes UpdateOne (), UpdateMany () et RemplaceOne ()? Quelle est la différence entre les méthodes UpdateOne (), UpdateMany () et RemplaceOne ()? Jul 15, 2025 am 12:04 AM

La principale différence entre UpdateOne (), UpdateMany () et ReplaceOne () dans MongoDB est la portée et la méthode de mise à jour. ① UpdateOne () ne met à jour que la partie des champs du premier document de correspondance, qui convient aux scènes où un seul enregistrement est modifié; ② UpdateMany () met à jour la partie de tous les documents correspondants, ce qui convient aux scènes où plusieurs enregistrements sont mis à jour par lots; ③ RemplaceOne () remplace complètement le premier document correspondant, qui convient aux scènes où le contenu global du document est requis sans conserver la structure d'origine. Les trois s'appliquent à différentes exigences de fonctionnement des données et sont sélectionnés en fonction de la plage de mise à jour et de la granularité de l'opération.

Comment le stade de se déroulant $ peut-il être utilisé pour déconstruire les champs de tableau dans un pipeline d'agrégation? Comment le stade de se déroulant $ peut-il être utilisé pour déconstruire les champs de tableau dans un pipeline d'agrégation? Jul 01, 2025 am 12:26 AM

$ UndemdDeconstructSanArrayFieldIntomultipleDocuments, chaque contenu envergure dettheaRay.1.ittransformsaDocumentwithanarrayIntomultipledocuments, chaque fois HavingasingsingleElementFromTheArray.2.

Comment les documents peuvent-ils être supprimés efficacement à l'aide de DeleteOne () et DeleteMany ()? Comment les documents peuvent-ils être supprimés efficacement à l'aide de DeleteOne () et DeleteMany ()? Jul 05, 2025 am 12:12 AM

Utilisez DeleteOne () pour supprimer un seul document, qui convient à la suppression du premier document qui correspond aux critères; Utilisez DeleteMany () pour supprimer tous les documents correspondants. Lorsque vous devez supprimer un document spécifique, DeleteOne () doit être utilisé, surtout si vous déterminez qu'il n'y a qu'une seule correspondance ou si vous souhaitez supprimer un seul document. Pour supprimer plusieurs documents qui répondent aux critères, tels que le nettoyage des anciens journaux, les données de test, etc., DeleteMany () doit être utilisée. Les deux supprimeront en permanence les données (sauf s'il y a une sauvegarde) et peut affecter les performances, il doit donc être utilisé pendant les heures hors puits et s'assurer que les conditions de filtrage sont exactes pour éviter la dépression. De plus, la suppression des documents ne réduit pas immédiatement la taille du fichier du disque, et l'index prend toujours de la place jusqu'à la compression.

See all articles