Estoy usando Algolia para fines de búsqueda y obtuvimos una gran cantidad de registros. Queremos eliminar algunos registros y hemos decidido eliminar los registros que tienen más de X fecha.
Primero estaba usando esto
const records = []; const deleteRecordsBeforeDateAlgolia = (date) => { let client; ***** const index = client.initIndex('function_message'); //get the records before the given date try { index.search('',{ filters: `time_stamp < ${date}` }).then(({hits}) => { if(hits.length > 0) { for (const hit of hits) { index.deleteObject(hit.objectID); records.push(hit.objectID); } } if(hits.length === 0) { console.log(`Deleted ${records.length} records`); } else { deleteRecordsBeforeDateAlgolia(date); } }); } catch (err) { console.error(err); } };
pero me di cuenta de que esto no es que optimizado + será muy lento al eliminar en prod. ¿Puede decirme cómo puedo obtener grandes cantidades de datos con un filtro (marca de tiempo en este caso) y luego eliminarlos todos?
const records = []; const deleteRecordsBeforeDateAlgolia = (date) => { let client; //creds stuff const index = client.initIndex('function_message'); //get the records before the given date try { const search = index.browseObjects({ filters: `time_stamp < ${date}` }).then(res => { //IT SHOWS RESPONSE IS UNDEFINED res.forEach(record => { records.push(record); }); console.log(`found ${records.length} records`); }); } catch (err) { console.error(err); } };