varias valor una según resaltar rango otra funcion formato filas fila dependiendo condicional con colores color celdas celda cambiar aplicar mongodb rest parse.com batch-processing

mongodb - valor - Actualizar múltiples filas condicional



formato condicional de una celda dependiendo del valor de otra (1)

¿Alguien sabe una forma de actualizar varias filas de acuerdo a una condición dada usando la API REST de Parse.com?

Imagine una clase "Ubicación" con varias ubicaciones. Cada elemento tiene una columna "estado" que contiene un valor de cadena enum como "ok" o "error".

Me gustaría hacer algo que se pueda hacer en un MongoDb de alguna manera como este

db().find(query).update({status: "ok"})

En palabras:

"Encuentra todas las ubicaciones que coinciden con mi consulta y luego actualiza el estado a Ok".

No hay nada escrito al respecto en la documentación REST API Batch Operations de Parse.com y dudo que Parse.com lo admita. Parse.com admite operaciones por lotes , pero obviamente no si están vinculadas a una condición .

No estoy buscando el elemento find-all-items-and-then-update-them-item-by-item-way, ya que esto lleva demasiado tiempo, estamos hablando de miles de miles de elementos.


No hay forma de hacerlo en un solo paso. La operación más cercana a lo que está buscando es la función saveAll . Referencia de API de JS

Aquí está la descripción:

saveAll (lista, opciones)
Guarda la lista dada de Parse.Object. Si se encuentra algún error, se detiene y llama al controlador de errores.

Ejemplo de uso:

Parse.Object.saveAll([object1, object2, ...], { success: function(list) { // All the objects were saved. }, error: function(error) { // An error occurred while saving one of the objects. }, });

Con esta operación, aún tendrá que consultar los objetos, repetirlos y actualizar los valores, luego llamar a saveAll en la lista de objetos actualizados.

Ha habido un poco de confusión en torno a la operación de saveAll todo, en particular, cuántas solicitudes de API utiliza. Esto de forma incierta se debe al hecho de que Parse ha cambiado la forma en que facturan las solicitudes de la API y ya no existe lo que antes era cierto para esta operación.

Por este enlace :

saveTodo intenta hacer la menor cantidad posible de llamadas a la API. Por lo general, una llamada a saveAll da como resultado solo una solicitud de API. Sin embargo, si alguno de los objetos del conjunto tiene una relación con otro objeto no guardado, ese objeto deberá guardarse primero, lo que generará más solicitudes de API.

Esto ya no es verdad . En abril de 2014, Parse cambió su modelo de precios a la métrica de solicitudes por segundo , pero más adelante ese año, Parse también cambió la manera en que se contabilizaron las solicitudes de API por lotes, ya que los desarrolladores comenzaron a explotar las operaciones por lotes.

Aquí hay un extracto de una declaración oficial de Parse sobre el tema :

notamos que algunos desarrolladores estaban abusando de esta exención y degradando seriamente el rendimiento de las otras aplicaciones en sus clústeres compartidos. Investigamos más a fondo y descubrimos que el impacto acumulativo de la falta de coincidencia entre los recursos previstos y las demandas reales, incluso entre desarrolladores con buenas intenciones, contribuía a la inestabilidad en el sistema en general.

Eliminamos la exención y tenemos la intención de continuar con este modelo en el futuro. Dicho esto, comprendemos por completo que esto requerirá cambios para los desarrolladores que se basaron en el modelo anterior.

El uso hoy de la operación saveAll dará como resultado 1 solicitud de API por objeto en la lista, llamando efectivamente a save para cada objeto individual.

Actualmente, no hay forma de evitar tener que llamar guardar en cada uno de los objetos modificados. Esperemos que esto sea algo que Parse considerará agregar en el futuro.