¿Es posible obtener el documento que se eliminó de MongoDB?¿Cómo se borra el documento en MongoDB?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
¡Gracias!
¿Es posible obtener el documento que se eliminó de MongoDB?¿Cómo se borra el documento en MongoDB?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
¡Gracias!
Es posible, pero requiere un comando diferente. Usted está buscando findAndModify
command.
Si establece las opciones en {query: ..., remove: true, new: false}
, eliminará un solo documento y devolverá el documento eliminado.
Algunas notas:
new
es una palabra clave en muchos idiomas, asegúrese de que está envolviendo el texto de la bandera correctamente.findAndModify
solo funcionará con un solo documento. Esto está bien para eliminar _id
pero no es bueno para eliminaciones a distancia.db.collection('mycollection').findOneAndDelete({
id: '123456'
}, function (error, response) {
response.value;// returns the deleted object, but no longer exists in the database
});
Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based- respuestas) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. Por favor, intente no saturar su código con comentarios explicativos, ¡esto reduce la legibilidad tanto del código como de las explicaciones! – kayess
no es el parámetro '' new' ignorado cuando se retire: true'? lo encontró en [nodo-mongodb-native docs] (https://github.com/mongodb/node-mongodb-native#find-and-modify) y [aquí] (http://docs.mongodb.org/ manual/reference/command/findAndModify /) – balazs
Es muy posible que se ignore. Esos documentos se escribieron aproximadamente 12 meses después de que se escribió esta respuesta :). Dicho esto, probablemente tengas razón, es probable que se ignore el indicador 'nuevo' dado que el valor de retorno sería el mismo en ambos casos. –
¿Cómo hacemos para devolver el rango de documentos que coinciden con la condición después de eliminarlos? – thethakuri