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". }

0voto

user1704745 Points 1

Solution et exemple :

1- C:\MongoDB\Server\3.2\bin >mongo (ne lancez pas encore la commande car vous n'êtes pas encore connecté à une base de données, vous êtes seulement connecté au serveur de base de données mongodb).

2-

show dbs analytics_database 0.000GB local 0.000GB test_database 0.000GB

3-

utiliser test_database basculé vers db test_database

4-

db.Collection.remove({"_id" : ObjectId("5694a3590f6d451c1500002e")}, 1); WriteResult({"nRemoved" : 1 })

maintenant vous voyez WriteResult({ "nRemoved" : 1 }) est 1 et non 0.

C'est fait.

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