En la consola de MongoDB ¿cómo puedo eliminar un registro con id? Aquí está mi colección :

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

Y aquí están los comandos que he probado que no funcionan :

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")});

Extracción por el nombre de las obras :

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

Esto es en el navegador de shell en mongodb.org si hay alguna diferencia

Gracias

  • Ninguna de las soluciones que funcionó para mí hasta que me añade una devolución de llamada: db.test_users.quitar( {«_id»: ‘4d512b45cc9374271b02ec4f’}, function(err, datos){});
InformationsquelleAutor Typo Johnson | 2011-02-08

9 Comentarios

  1. 249

    Muy cerca. Esto va a funcionar:

    db.test_users.remove( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});

    es decir, usted no necesita un nueva para el ObjectId.

    • se trabajará también sin comillas alrededor de _id db.test_users.quitar( {_id: ObjectId(«4d512b45cc9374271b02ec4f»)});
    • He intentado esto: TimeAndSpace.quitar( {«_id»: ObjectId(«8Bd2dZ778LXejYNrL»)}); …y que yo tengo, «Uncaught ReferenceError: ObjectId no está definido en <anonymous>:2:13»
    • El IDENTIFICADOR de objeto espera hexadecimal de entrada (tal vez también en minúsculas), por lo que está fallando en la X, Z, entre otros.
    • Este es _reidiculous.
    • Si el _id campo no es generado automáticamente (es decir, no es un ObjectId, sino una Cadena), puedes escribir el valor de la _id bajo comillas: db.your.database.remove({"_id": "your value"}).
  2. 16

    La respuesta es que la consola web/shell en mongodb.org se comporta de forma diferente y no como yo esperaba. Una versión instalada en la casa funcionó a la perfección sin problema, es decir; el auto genera _id en la web de shell fue guardado como este :

    "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },

    El mismo documento de instalación en el hogar y el auto genera _id se guardó como este :

    "_id" : ObjectId("4d5192665777000000005490")

    Consultas trabajado en contra de la última sin problema.

    • ¿Estás seguro de que están guardados de forma diferente en el documento HIJO? Esas diferencias es el cliente, el formato de la salida de manera diferente.
  3. 12

    Bien, el _id es un objeto en el ejemplo, por lo que sólo necesita para pasar un objeto

    'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})'

    Esto debería funcionar

    Edit: Añadido trailing paren para asegurarse de que se compila.

    • Traté de que también es no eliminar el registro: db.test_users.quitar( {«_id»:{«$oid»:»4d513345cc9374271b02ec6c»}}); ps: se ha actualizado la pregunta para mostrar este
    • En su pregunta usted dijo que se trató de esto: db.test_users.quitar( {«_id»:{«$oid»:nueva ObjectId(«4d512b45cc9374271b02ec4f»)}});
    • Sí he actualizado la pregunta ahora gracias, he probado ambas y ninguna funciona. Tal vez esto es porque no se puede eliminar en un sub propiedad?
    • usando de esa manera devuelve «desconocido operador: $oid»
  4. 9

    Si quieres eliminar de una lista de Identificadores de esto funciona muy bien.

    db.CollectionName.remove({
        "_id": {
            $in: [
                ObjectId("0930292929292929292929"),
                ObjectId("0920292929292929292929")
            ]
         }
    }) 
  5. 5

    ¿Tiene múltiples mongodb nodos en un conjunto de réplicas?

    He encontrado (estoy utilizando a través de Robomongo gui mongo shell, supongo que el mismo se aplica en otros casos) que el correcto quitar la sintaxis, es decir,

    db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")})

    …no funciona a menos que estén conectados a la primaria nodo del conjunto de réplicas.

  6. 4

    Sólo me he topado en esta conmigo y esta variación trabajado para mí:

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

    obtener primero el ObjectID de la función de la mongodb
    ObjectId = require(mongodb).ObjectID;

    a continuación, puede llamar a la _id con la función de borrado

    «_id» : ObjectId(«4d5192665777000000005490»)

  8. 0

    Solución y Ejemplo:

    1 – C:\MongoDB\Server\3.2\bin>mongo (no problema de comandos sin embargo, debido a que no están conectados a ninguna base de datos sin embargo, sólo está conectado al servidor de base de datos mongodb).

    2-

    show dbs
    analytics_database 0.000 GB
    local 0.000 GB
    test_database 0.000 GB

    3-

    uso test_database
    cambié a db test_database

    4-

    db.De la colección.quitar({«_id»: ObjectId(«5694a3590f6d451c1500002e»)}, 1);
    WriteResult({ «nRemoved» : 1 })

    ahora puedes ver WriteResult({ «nRemoved» : 1 }) es 1 no 0.

    Hecho.

Dejar respuesta

Please enter your comment!
Please enter your name here