Soy nuevo en la plataforma parse y estoy tratando de insertar 81000 filas de datos en Parse DB, aquí el código
const uri = "/the.json" const res = await axios.get(uri) const dataresult = Object.keys(res.data) if (dataresult.length > 0) { res.data.forEach(function (datakp) { var kp = new Parse.Object("theClass"); kp.save(datakp) .then((res) => { console.log('oke ' + res.id) }), (error) => { console.log('err : '+ error.message) } }) }
No hay ningún error en el registro de la consola y no se guardan datos en Parse DB, pero si solo inserto 1000 filas, se guardará en la base de datos.
P.EJ:
if (dataresult.length > 0) { res.data.forEach(function (datakp, index) { if (index < 1000) { var kp = new Parse.Object("theClass"); kp.save(datakp) .then((res) => { console.log('oke ' + res.id) }), (error) => { console.log('err : '+ error.message) } }) } }
Gracias
ACTUALIZAR
Arreglo este caso basado en la respuesta @davi-macêdo aquí un código completo
const uri = "/the.json" const res = await axios.get(uri) const dataresult = Object.keys(res.data) const objs = []; const theKP = Parse.Object.extend("theClass") if (dataresult.length > 0) { res.data.forEach(function (datakp) { var thekp = new theKP() thekp.set(datakp) objs.push(thekp); }) } Parse.Object.saveAll(objs) .then((res) => { console.log('oke updated ' + dataresult.length) }), (error) => { console.log('err : '+ error.message) }
La forma más eficiente es usar la función Parse.Object.saveAll
. Algo como esto:
const uri = "/the.json" const res = await axios.get(uri) const dataresult = Object.keys(res.data) const objs = []; if (dataresult.length > 0) { res.data.forEach(function (datakp) { objs.push(new Parse.Object("theClass", datakp)); }) } Parse.Object.saveAll(objs) .then((res) => { console.log('oke ' + res.id) }), (error) => { console.log('err : '+ error.message) }
De todos modos, dado que no tiene ningún error y no se están guardando datos actualmente, es posible que esté creando un límite de memoria. Así que eso es algo de lo que también debes ser consciente.
Probablemente esté alcanzando los límites de velocidad, no puedo imaginar que guardar 81,000 registros de una sola vez sea un comportamiento normal para muchas aplicaciones.
Revisé la documentación y no pude encontrar nada que pudiera mencionar un límite de guardado, sin embargo, enviar 1000 solicitudes activaría la mayoría de las protecciones de límite de velocidad.