153 votes

Suppression par _id dans la console MongoDB

Dans la console MongoDB, comment puis-je supprimer un enregistrement par identifiant ? Voici ma collection :

[ 
  {
     "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
     "name" : "Gazza"
  },
  {
     "_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
     "name" : "Dave",
     "adminOf" : { },
     "email" : "email@email.com"
  }
]

Et voici les commandes que j'ai essayées et qui ne fonctionnent pas :

db.test_users.remove( {"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}});
db.test_users.remove( {"_id":{"$oid":"4d513345cc9374271b02ec6c"}});
db.test_users.remove( {"_id":"4d512b45cc9374271b02ec4f"});
db.test_users.remove( {"_id":new ObjectId("4d512b45cc9374271b02ec4f")});

La suppression par nom fonctionne :

db.test_users.remove( {"name":"Gazza"});

C'est dans le shell du navigateur sur à mongodb.org si cela fait une différence

Merci

0 votes

Aucune des solutions n'a fonctionné pour moi jusqu'à ce que j'ajoute un rappel : db.test_users.remove( {"_id" : '4d512b45cc9374271b02ec4f'}, function(err, data){}) ;

0 votes

Je suis curieux de savoir comment vous avez réussi à écrire ces documents dans votre collection, ma tentative s'est terminée par "writeError" : { "code" : 52, "errmsg" : "$oid n'est pas valide pour le stockage". }

5voto

Karoy Points 60

Je viens juste de tomber sur ce problème et cette variante a fonctionné pour moi :

db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")})

5voto

SA Khan Points 61

Récupérez d'abord la fonction ObjectID de mongodb. ObjectID = require(mongodb).ObjectID ;

alors vous pouvez appeler le _id avec la fonction de suppression

"_id" : ObjectId("4d5192665777000000005490")

3voto

kamula Points 51
db.collection("collection_name").deleteOne({_id:ObjectId("4d513345cc9374271b02ec6c")})

2voto

Yuval Meshorer Points 146

Même si ce post est périmé, collection.remove est déprécié ! collection.delete_one doit être utilisé à la place !

Vous trouverez de plus amples informations ici sous #remove

2voto

Asad S Points 11

Supposons que nous ayons cette collection fictive :

{ "_id" : ObjectId("5ea53fedaa79db20d4e14284"), "item" : "planner", "qty" : 75 }

utilisez simplement :

db.inventory.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })

il sera supprimé avec ceci comme réponse :

{ "acknowledged" : true, "deletedCount" : 1 }

C'est tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X