Maison >base de données >MongoDB >Comment mettre à jour le _id d'un document MongoDB ?
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!