sql >> Base de Datos >  >> NoSQL >> MongoDB

rastrear documentos eliminados en la colección limitada de Mongo DB

Colecciones limitadas son colecciones de tamaño fijo que eliminan automáticamente los documentos más antiguos (según el orden de inserción) sobrescribiéndolos una vez que la colección está llena.

Las colecciones limitadas conceptualmente son un búfer circular en lugar de una cola.

Esto no parece una buena opción para un caso de uso de información de pedido persistente:no hay un "gancho" para volver a insertar documentos en una colección limitada cuando se eliminan, y si su colección limitada es demasiado pequeña, puede sobrescribir documentos antes de que sean procesados.

Creo que realmente quiere usar una colección normal (sin límite).

Eliminar pedidos antiguos según el estado

Si desea eliminar pedidos en función de algún valor de estado, debe manejar esto en el código de su aplicación (por ejemplo, cuando un pedido pasa del estado "Pendiente" a "Procesado", realice la limpieza necesaria).

Eliminar pedidos antiguos/caducados según el tiempo

Si desea que los pedidos antiguos/caducados se eliminen automáticamente en un momento específico, un buen enfoque sería usar una colección normal con un caducidad del tiempo de vida (TTL) a nivel de documento , por ejemplo:

db.orders.ensureIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

A continuación, puede establecer (o extender) la caducidad de cada documento de pedido según el expireAt fecha. Tenga en cuenta que esta puede no ser una opción adecuada si necesita verificar tanto el expireAt valor y un campo de estado (la caducidad de TTL se basa únicamente en el índice de fecha proporcionado).