example - mongodb tutorial
MongoDb quitar subdocumento del documento (2)
Tengo una colección con los siguientes datos:
{
"_id" : ObjectId("4e3951905e746b3805000000"),
"m" : "hello",
"r" : [{
"_id" : ObjectId("4e3951965e746b8007000000"),
"u" : 3,
"m" : "response1"
}, {
"_id" : ObjectId("4e39519d5e746bc00f000000"),
"u" : 3,
"m" : "response2"
}, {
"_id" : ObjectId("4e3953dc5e746b5c07000000"),
"u" : 3,
"m" : "response3"
}, {
"_id" : ObjectId("4e3953ea5e746bd40f000001"),
"u" : 3,
"m" : "response"
}],
"u" : 3,
"w" : 3
}
{
"_id" : ObjectId("4e3952c75e746bd807000001"),
"m" : "asdfa",
"r" : [{
"_id" : ObjectId("4e39544e5e746bc00f000001"),
"u" : 3,
"m" : "response5"
}],
"u" : 3,
"w" : 3
}
¿Alguien puede sugerir cómo eliminar un subdocumento de una clave ''r'' que tiene solo id de subdocumento, voy a del?
por ejemplo, quiero borrar un subdocumento con el ID 4e39519d5e746bc00f000000 Por lo tanto, este subdocumento debe eliminarse
{
"_id" : ObjectId("4e39519d5e746bc00f000000"),
"u" : 3,
"m" : "response2"
},
Es fácil, solo necesitas usar el operador $pull :
db.items.update( {},
{ $pull : { r : {"_id": ObjectId("4e39519d5e746bc00f000000")} } }, false, false )
dbh.users.update({"_id": ObjectId("4e39519d5e746bc00f000000")}, {"$unset":{"r":1}},False,False)
Trate de usar unset
Referencia: MongoDB: Actualizar la semántica del modificador de "$ unset"